【问题标题】:php : cannot update field in database (PDO) by multiple choice of checkboxphp:无法通过多个复选框更新数据库(PDO)中的字段
【发布时间】:2016-06-20 23:15:19
【问题描述】:

我在尝试使用复选框更新数据库中的字段时遇到问题, 如果checkbox 选中,然后我按下按钮进行更新。

输出程序不工作

<td><input type="checkbox" name="id1<?php echo $data['id'];?>" value="id1<?php echo $data['id'];?>" ></td>;

更新代码:

<?php
foreach($result as $data) { // display all data in table before we updated
    <td><input type="checkbox" name="id1<?php echo $data['id'];?>" value="id1<?php echo $data['id'];?>" ></td>;

    $update = "UPDATE identitas SET status='1'  WHERE nama=".$data["id"];
    // if button update clicke
    if(isset($_POST['update'])){
    // if checkbox is checked
        if(isset($_POST['id1'])) {
            if($conn->exec($update)===TRUE){
                echo "success update";
            }else{
                echo "failed Update" . $conn->errorInfo();
            }
        }
    }
}
?>
//other codes

当复选框被选中时,我会将数据库中的字段status从0更新为1

我上面的代码不起作用,我使用 PDO

【问题讨论】:

    标签: mysql checkbox pdo


    【解决方案1】:

    我在下面引用的两行代码彼此不兼容。

    例如,如果 $data['id'] 包含值 3,则复选框的名称将是 'id13',而您检查名为 'id1' 的 POST 变量。

    if(isset($_POST['id1'])) {
    
    name="id1<?php echo $data['id'];?>"
    

    【讨论】:

    • 按顺序我应该检查if(isset($_POST[id1['id]]))?对不起,愚蠢的例子,我已经尝试了很多方法来让这个程序运行良好,这让我很困惑
    • 我认为您应该将这两个值分开。 id 为名称,data['id'] 为值。然后你只需要检查 POST 变量 $_POST['id']
    • 你的意思是这样的:&lt;input type="checkbox" name="id" value="id1&lt;?php echo $data['id'];?&gt;" &gt; 然后我检查if(isset($_POST['id]))
    【解决方案2】:

    更改名称以更新和运行您的代码

    &lt;td&gt;&lt;input type="checkbox" name="Update" value="id1&lt;?php echo $data['id'];?&gt;" &gt;&lt;/td&gt;

    或者你可以这样改变,

    if(isset($_POST['id1'])) {
    
    name="id1<?php echo $data['id'];?>
    

    【讨论】:

    • 你能详细说明一下,哪个名称用于更新(按钮更新),哪个名称用于复选框?我的意思是,我用于按钮更新名称的答案的更新名称
    猜你喜欢
    • 2017-03-22
    • 2014-10-20
    • 2014-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-18
    • 1970-01-01
    相关资源
    最近更新 更多