2015-10-20 33 views
0

嗨,我的问题是更新数据库与查询后,表单中的值将不会更改,即使相同的值(例如team1),在代码的底部给了我更新的价值。要更新我必须刷新页面的表单中的值。更新表单值,更新后在php查询sql

<form action="" method="post" id="form-partite"> 
    Team Home: <input type="text" name="team1" value="<?php echo $team1 ?>"> 
    Team Away: <input type="text" name="team2" value="<?php echo $team2 ?>"> 
    <input type="submit" name="submit" id="submit"> 
</form> 
<?php 
    if (isset($_POST['submit'])) { 
     if ($_POST['team1'] == "" || $_POST['team2'] == ""){ 
      echo "Devi inserire entrambe le squadre"; 
     } else { 
      $team1 = $_POST['team1']; 
      $team2 = $_POST['team2']; 
      $data = array(
       'team1' => $team1, 
       'team2' => $team2 
      ); 
      global $wpdb; 
      $wpdb -> update(wp_partite, $data, array(id => '1')); 
      global $wpdb; 
      $partita = $wpdb -> get_row("SELECT team1, team2 FROM wp_partite"); 
      $team1 = $partita -> team1; 
      $team2 = $partita -> team2; 
      echo "Partita inserita: " . $team1 . " vs " . $team2 . "!"; 
      unset($_POST); 
     } 
     } 

回答

0

正如指出的路易斯,总是利用其varaibles之前调用PHP。 也不要取消设置$ _POST,因为它是一个全局变量,不能被忽略。 取消全局变量是一种不好的做法。躲开它。

此外,在检查$ _POST ['submit']之前定义$ team1和$ team2,以便它们始终可用并且不会给出未定义的变量错误。

使用修剪,以便您不希望用户填写表单中的空格。

虽然您可以在$ _POST内取消设置team1和team2的偏移量。

下面的代码:

<?php 

    $team1 = $team2 = ''; // ADD THIS LINE, else form will show undefined variable error. 

    if (isset($_POST['submit'])) { 
     if (trim($_POST['team1']) == "" || trim($_POST['team2']) == ""){ // Modified 
      echo "Devi inserire entrambe le squadre"; 
     } else { 
      $data = array(
       'team1' => $_POST['team1'], // Modified 
       'team2' => $_POST['team2'] // Modified 
      ); 
      global $wpdb; 
      $wpdb -> update(wp_partite, $data, array(id => '1')); 
      global $wpdb; 
      $partita = $wpdb -> get_row("SELECT team1, team2 FROM wp_partite"); 
      $team1 = $partita -> team1; 
      $team2 = $partita -> team2; 
      echo "Partita inserita: " . $team1 . " vs " . $team2 . "!"; 
      unset($_POST['team1']); // Modified 
      unset($_POST['team2']); // Modified 
     } 
    } 
?> 
<form action="" method="post" id="form-partite"> 
    Team Home: <input type="text" name="team1" value="<?php echo $team1 ?>"> 
    Team Away: <input type="text" name="team2" value="<?php echo $team2 ?>"> 
    <input type="submit" name="submit" id="submit"> 
</form> 
+0

thanx以获得有用的解释! – stockw

+0

欢迎您!如果解决了您的问题,请接受答案。谢谢 –

0

相反呼应PHP之前的形式,做PHP后:

<?php 
    if (isset($_POST['submit'])) { 
     if ($_POST['team1'] == "" || $_POST['team2'] == ""){ 
      echo "Devi inserire entrambe le squadre"; 
     } else { 
      $team1 = $_POST['team1']; 
      $team2 = $_POST['team2']; 
      $data = array(
       'team1' => $team1, 
       'team2' => $team2 
      ); 
      global $wpdb; 
      $wpdb -> update(wp_partite, $data, array(id => '1')); 
      global $wpdb; 
      $partita = $wpdb -> get_row("SELECT team1, team2 FROM wp_partite"); 
      $team1 = $partita -> team1; 
      $team2 = $partita -> team2; 
      echo "Partita inserita: " . $team1 . " vs " . $team2 . "!"; 
      unset($_POST); 
     } 
    } 
?> 
<form action="" method="post" id="form-partite"> 
    Team Home: <input type="text" name="team1" value="<?php echo $team1 ?>"> 
    Team Away: <input type="text" name="team2" value="<?php echo $team2 ?>"> 
    <input type="submit" name="submit" id="submit"> 
</form> 
+0

感谢名单了很多路易斯 – stockw

+0

不客气!请将问题设置为回答@stefanotombari –