【问题标题】:keep assoc array checkbox checked保持关联数组复选框处于选中状态
【发布时间】:2012-05-27 02:48:56
【问题描述】:

我正在尝试检查复选框列表,直到帖子有效且没有错误。下面是我正在使用的代码。如有任何帮助,我将不胜感激。

     <?php foreach ($drinks_checkbox as $option => $options){  ?>

     <input type='checkbox' id='drinks[]' name='drinks[]' value='<?php echo $option;?>'   <?php if(!empty($_POST['drinks'])){if($_POST['drinks']==$option){ echo "checked='checked'" ; }}?> /><?php echo $options;?><br />
    <?php } ?>

我可以使用 implode 成功显示选中的复选框,但是我需要上述帮助..

【问题讨论】:

    标签: php arrays checkbox


    【解决方案1】:

    $_POST['drinks'] 是一个数组。另外,id 值不需要是 'drinks[]'

    试试这样的:

    $drinksIndex = 0;
    $drinksPost = $_POST['drinks'];
    foreach ($drinks_checkbox as $option => $options){  ?>
    
      <input type='checkbox' id='drinks<?php echo $drinksIndex; ?>' name='drinks[<?php echo $drinksIndex; ?>]' value='<?php echo $option;?>'<?php
      if( !empty($drinksPost[$drinksIndex]) ) echo " checked='checked'";
      $drinksIndex++;
    ?> /><?php
    echo $options;?><br />
    <?php
    } ?>
    

    修改了 !empty($drinksPost[$drinksIndex]) 部分并改为关联。

    如果这不起作用,您可以包括 $drinks_checkbox

    【讨论】:

    • 谢谢!如果选中了所有复选框,则效果很好,但是会向未选中的复选框抛出错误。注意:未定义的偏移量:C:\wamp\www\easyform\register_form.php 第 133 行中的 1
    • 嗯,是的 - 将 count( $drinksPost ) 更改为 !empty( $drinksPost[$drinksIndex]) - 我将修改上述内容。如果你是新来的,那么习惯上投票给答案,如果这是你所追求的:)
    • 会发生什么情况,如果我选中所有复选框,那么它们会保持选中状态 如果我只选中几个复选框,那么只有第一个复选框会保持选中状态。
    • 啊,是的 - 数组的长度会根据检查的数量而变化。解决方案是为每个具有默认值的选项设置一个 字段,或者(更好)将字段名称设置为关联数组。上面已修改以反映。
    • 谢谢!完美的!我是php新手,你能解释一下发生了什么吗?我想更多地了解这个过程。再次感谢您。
    猜你喜欢
    • 2021-04-30
    • 2018-10-06
    • 1970-01-01
    • 1970-01-01
    • 2020-09-16
    • 2014-08-29
    • 1970-01-01
    • 1970-01-01
    • 2012-08-25
    相关资源
    最近更新 更多