在php中更新sql查询后更新表单值
嗨,我的问题是,在使用查询更新数据库之后,表单中的值不会改变,即使代码底部的相同值(例如team1)给了我更新值。要更新表单中的值,我必须刷新页面在php中更新sql查询后更新表单值,php,mysql,forms,Php,Mysql,Forms,嗨,我的问题是,在使用查询更新数据库之后,表单中的值不会改变,即使代码底部的相同值(例如team1)给了我更新值。要更新表单中的值,我必须刷新页面 <form action="" method="post" id="form-partite"> Team Home: <input type="text" name="team1" value="<?php echo $team1 ?>"> Team Away: <input type="t
<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);
}
}
不要在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>
正如Luis所指出的,在使用PHP变量之前,请始终调用PHP。 也不要取消设置$\u POST,因为它是一个全局变量,不能取消设置。 取消设置全局变量是一种糟糕的做法。避免它 此外,在检查$_POST['submit']之前,请定义$team1和$team2,以便它们始终可用,并且不会给出未定义的变量错误 使用trim,以避免用户在表单中填充空格 不过,您可以在$\u 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>
谢谢你的解释!不客气。!如果答案解决了你的问题,请接受。谢谢不客气!请将问题设置为已回答@stefanombari