我在表格中有以下复选框:
<td><span id='checkbox'><input type='checkbox' name='secret' value='true'> Share Anomolously? </span></td>
我已经根据 this 更改了我的 PHP 代码上一个问题。我有以下代码,它根据是否选中复选框执行两个不同的查询:
$post_msg = @$_POST['msg'];
if (isset($_POST['secret'])=='true' && $post_msg != "" ) {
// Checkbox is selected
$posted_info = date('l jS \of F Y h:i:s A');
//$date_of_msg = date("Y-m-d");
//$time_of_msg = date("H:i");
$msg_sent_by = $username;
$insert_query = "INSERT INTO user_thoughts VALUES ('','$post_msg','','' ,'$attach_name','$msg_sent_by','')";
$run_query = mysqli_query($connect, $insert_query) or die(mysqli_error());
} else if (isset($_POST['secret'])!=='true' && $post_msg != "" ) {
// Alternate code
$posted_info = date('l jS \of F Y h:i:s A');
//$date_of_msg = date("Y-m-d");
//$time_of_msg = date("H:i");
$msg_sent_by = $username;
$insert_query2 = "INSERT INTO user_thoughts VALUES ('','$post_msg','','' ,'$attach_name','$msg_sent_by','no')";
$run_query2 = mysqli_query($connect, $insert_query2) ;
}
使用当前这段代码,当用户点击按钮发布消息 $post_msg
并且未选中该复选框时,它会在数据库中插入 no
,当不应该的时候。只是为了解释一下,插入查询 INSERTS
数据中的最后一个 ''
数据到名为 shared
的列,并且具有定义的值 是的
。
因此,如果用户在未选中复选框的情况下发布消息,则应执行第一个 if 语句。如果用户在选中复选框的情况下共享帖子,则应执行第二个 if 语句,其中 INSERTS
不在 shared
列中。
目前,即使未选中该复选框,它也始终会在 shared
列中插入 no
。
最佳答案
这是因为:
isset($_POST['secret'])=='true'
只是检查它是否有值。它不会检查他们看重什么。
关于php - 检查复选框状态并基于它执行 PHP 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35733998/