php - 检查复选框状态并基于它执行 PHP 查询

标签 php mysql checkbox

我在表格中有以下复选框:

<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/

相关文章:

php - 从输入创建数组?

mysql - jpa id生成策略,@id默认是auto,mysql默认是IDENTITY,但是我发现生成了一个hibernate_sequence表,为什么?

mysql - 如何获取 mysql 编辑 (\a) 功能以保留任意行的格式

mysql - 无法从 Sequelize.js 连接,可以从 MySQL 客户端连接

Django CheckboxSelectMultiple : my checkboxes are not checked

JavaScript-多个复选框验证不起作用

php - 如何让 Composer 从 GitHub 下载 master 分支中的最新提交以获取包?

php - 如何知道客户端的Magento配置

php - 我想知道是否有一些通用文本 block 用于尝试 "break"输入,例如文本字段

Javascript - 如何获取复选框组的总和