首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用php动态地从多个复选框中获取单个值?

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

Stack Overflow用户
提问于 2016-01-16 10:40:28
回答 1查看 121关注 0票数 0

我正在尝试从复选框( $mail_aspects['active']$mail_aspects['aspect_id'] )中获取单个值。

但是使用下面的代码,我只能得到其$mail_aspects['active']=1的值。但是,我需要在DB中更新选中的和未选中的值。

有人能在这个问题上提供帮助吗?

代码语言:javascript
复制
<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>

使用PHP

代码语言:javascript
复制
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]");
    }   
}
EN

回答 1

Stack Overflow用户

发布于 2016-01-16 14:23:58

要在$_POST中接收未选中的复选框值,必须在添加复选框之前添加具有相同名称和空值的隐藏输入字段。如果未选中复选框,则将提交隐藏输入的空值,否则将提交复选框的值。

就您的情况而言,应该如下所示:

代码语言:javascript
复制
<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>

重要的是隐藏和复选框输入的名称是相同的。

PHP代码应该正常工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34825990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档