如何获取多个选中的复选框值?

时间:2019-01-30 11:22:40

标签: php codeigniter checkbox multiple-value

我想获取多个选中的复选框值

这是我的代码:

<?php
    // $dosage_form_list_exist contains Comma separated string 
    $dosage_form_list_exist = 'Injection', 'Suspension', 'Tablet';
    foreach ($dosage_form_list as $val) {
?>  

    <input type="checkbox" name="dosage_form_input[]" value="<?php echo $val['dosage_form']?>" <?php echo ($dosage_form_list_exist == $val['dosage_form'] ? 'checked' : ''); ?>>

<?php echo $val['dosage_form'];?>

<?php
      }
?> 

此处$dosage_form_list_exist获得多个复选框值。但是我的代码显示仅检查了一项。我想显示多个检查值。

Image-1 中。我只有一个值要检查。没关系。

Image-1

但是在 Image-2 中。我得到多个值,例如注射剂,悬浮剂,片剂。但是没有选中的复选框。 Image-2

所以我要获取多个已选中的复选框值。

有人可以帮我检查一下吗?

2 个答案:

答案 0 :(得分:0)

我认为这是您正在寻找的解决方案。您必须在将所有输入附加到字符串之前将其返回为html。

  <?php
    $html = '';
    foreach ($dosage_form_list as $val) {
        $checked = $dosage_form_list_exist == $val['dosage_form'] ? 'checked' : '');
        $html .= "<input type='checkbox' name='dosage_form_input[]' value='$val[dosage_form]' $checked>$val[dosage_form]";
    }
    echo $html;
    ?>

答案 1 :(得分:0)

看起来$dosage_form_list_exist包含逗号分隔的字符串。通过假设,此解决方案可能有效:

<?php
$dosage_form_list_exist = preg_replace('/\s*,\s*/', ',', $dosage_form_list_exist); // It removes spaces after the comma only not between the values like "Oral Solutions" etc
// $dosage_form_list_exist = str_replace(' ', '', $dosage_form_list_exist); // It removes all the spaces from the Variable
$dosage_list = explode(',',$dosage_form_list_exist);
foreach ($dosage_form_list as $val) {
?>  

<input type="checkbox" name="dosage_form_input[]" value="<?php echo $val['dosage_form']?>" <?php echo (in_array($val['dosage_form'],$dosage_list) ? 'checked' : ''); ?>>

<?php echo $val['dosage_form'];?>

<?php
  }
?>