我想获取多个选中的复选框值
这是我的代码:
<?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-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
}
?>