php - 选中多个复选框时将值发送到数据库

标签 php mysql checkbox

我正在将一些数据从数据库表加载到复选框。当用户选中复选框并提交时,这些复选框中的值需要添加到不同的表中。使用我现在拥有的代码,我可以发送一个复选框的值。我在发送所有选中复选框的值时遗漏了什么?

<table>
    <?php       
    $q5=mysqli_query($link,"SELECT * FROM brands_offer WHERE Brand_Id='$bid' AND Published='1' ");
    while($row5 = mysqli_fetch_array($q5)){
        $catid= $row5['Catg_Id'];
        $subcatid= $row5['Subcatg_Id'];
        $pid= $row5['Product_Id'];      
    ?><tr><td>
    <form action="store-admin.php?search=<?php echo $stname;?>#stock" method="post">
    <input type="checkbox" name="checkbox" value="<?php echo "$bname,$catid,$subcatid,$pid";?>" >
    <?php
        echo $bname;
        echo " ->  ";
        echo $catid;
        echo ",  ";
        echo $subcatid;
        echo ",  ";
        echo $pid;
        echo "  ";
    }
    ?></td></tr>
    <input type="submit" value="Save Changes" name="add" >
    </form>
    </table>
    <?php
    if(isset($_POST['add']))
    {
    $chk = $_POST['checkbox'];

    $val = explode(",",$chk);
    $bn = $val[0];
    $cid= $val[1];
    $scid= $val[2];
    $prid= $val[3];

    echo "<script type='text/javascript'>alert('brand: ". $bn."')</script>";
    echo "<script type='text/javascript'>alert('cat: ". $cid."')</script>";
    echo "<script type='text/javascript'>alert('sub: ". $scid."')</script>";
    echo "<script type='text/javascript'>alert('pr: ". $prid."')</script>";

    }?>

最佳答案

在您的复选框名称属性 name="checkbox[]" 中使用方括号,您的 post 变量将是一个选定值的数组。

编辑:我注意到您在 while 循环中有表单开始标记。您需要将它放在 while 循环之前,否则它会生成大量的打开表单标签。

关于php - 选中多个复选框时将值发送到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37175013/

相关文章:

mysql - 创建一个触发器,在插入新项目时更新另一个表

Mysql查询搜索信用卡号码

Python 使用按钮通过 tkinter GUI 循环字典项

javascript - 如何在复选框单击时停止事件冒泡

php - fputcsv 创建文件但下载为空

javascript - 如何在 Angular 2/4 中返回来自响应而不是订阅 json 的数据

mysql - 您将如何设计这个数据库?个人和团体所有权

html - :checked pseudo class does not work in Chrome

php - MYSQL:查询中大量比较的 WHERE IN () 速度问题

php - 将 php 数组传递给 HTML