dtjo51649 2016-01-16 10:40
浏览 35

如何使用PHP动态地从多个复选框中获取单个值?

I am trying to get the individual values from the checkbox, $mail_aspects['active'] and $mail_aspects['aspect_id'].

But using the below code, I am only able to get the values whose $mail_aspects['active']=1. But I need to get both checked and unchecked values to update in DB.

Can anyone help on this issue?

<form method='post' style='display: inline-block;'>
    <div class="col-md-12">
        <?foreach ($customer['mail_aspects'] as $mail_aspects)
        { ?>
            <table>
                <tr>
                    <td>
                        <label> 
                            <input type="checkbox" name="mail_aspects[]" <?=($mail_aspects['active'] == '1') ? 'checked' : ''?>
                            value="<?=$mail_aspects['active']?>,<?=$mail_aspects['aspects_id']?>">
                            <?=$mail_aspects['aspects_name']?>
                        </label>
                    </td>
                </tr>
            </table> 
        <? }?>
    </div>
    <button type='submit' name='submit' value='Submit'>Save Aspects</button>
</form>

Using PHP

if(isset($_POST['submit'])){
    $mail_aspectsdet=$_POST['mail_aspects'];
    for($i=0;$i<count($mail_aspectsdet);$i++)
    {
        $exp=explode(',',$mail_aspectsdet[$i]);//Explode id and name
        $stmt=$db->exec("UPDATE customer_preferences set active=$exp[0] where customer_id=$customerID and aspects_id=$exp[1]");
    }   
}
  • 写回答

1条回答 默认 最新

  • dsgo31121 2016-01-16 14:23
    关注

    To receive unchecked checkbox values in $_POST you have to add a hidden input field with same name and null value before adding the checkbox. If a checkbox is unchecked the null value of hidden input will be submitted otherwise the value of the checkbox.

    In your case it should look like:

    <form method='post' style='display: inline-block;'>
    <div class="col-md-12">
        <?foreach ($customer['mail_aspects'] as $mail_aspects)
        { ?>
            <table>
                <tr>
                    <td>
                        <label> 
                            <input type="hidden" name="mail_aspects[<?=$mail_aspects['aspects_id']?>]" value="0" />
                            <input type="checkbox" name="mail_aspects[<?=$mail_aspects['aspects_id']?>]" <?=($mail_aspects['active'] == '1') ? 'checked' : ''?>
                            value="1">
                            <?=$mail_aspects['aspects_name']?>
                        </label>
                    </td>
                </tr>
            </table> 
        <? }?>
    </div>
    <button type='submit' name='submit' value='Submit'>Save Aspects</button>
    </form>
    

    Important is that the names of the hidden and the checkbox input are identically.

    Your PHP code should work properly.

    评论

报告相同问题?

悬赏问题

  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)