选中多个复选框时,将值发送到db

时间:2016-05-11 23:45:15

标签: php mysql checkbox

我正在从db表中将一些数据加载到复选框。当用户选中框并提交时,需要将这些复选框中的值添加到其他表中。使用我现在的代码,我可以发送一个复选框的值。发送所有已选中复选框的值时我缺少什么?

<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>";

    }?>

2 个答案:

答案 0 :(得分:1)

使用复选框名称属性name="checkbox[]"中的括号,您的帖子变量将是所选值的数组。

编辑:我注意到你在while循环中有表单开始标记。你需要把它放在while循环之前,否则它会产生大量的开放形式标签。

答案 1 :(得分:0)

所以看起来你只有一个复选框。如果您想将所有复选框的值作为数组发布,我相信您需要将[]添加到name字段的input。所以:

<input type="checkbox" name="checkbox[]" value="<?php echo "$bname";?>"/>
<input type="checkbox" name="checkbox[]" value="<?php echo "$catid";?>"/>
<input type="checkbox" name="checkbox[]" value="<?php echo "$subcatid";?>"/>
<input type="checkbox" name="checkbox[]" value="<?php echo "$pid";?>"/>

希望我理解你的问题。