我的复选框看起来像这样
<div>
<input type="checkbox" name="fruits[]" value="apple" <?php echo set_checkbox('fruits[]', 'apple'); ?> />
<input type="checkbox" name="fruits[]" value="banana" <?php echo set_checkbox('fruits[]', 'banana'); ?> />
<input type="checkbox" name="fruits[]" value="peach" <?php echo set_checkbox('fruits[]', 'peach'); ?> />
</div>
我在名称中使用数组,以便我可以使用我选择的复选框的值填充文本字段(通过jquery)。我正在使用stackoverflow上的脚本。
function calculate() {
var fruit = $.map($('input:checkbox:checked'), function(e, i) {
return e.value;
});
$('#fruits').val(fruit.join(',')); //adds values separated by comma to #fruits input
}
calculate();
$('div').delegate('input:checkbox', 'click', calculate);
到目前为止它可以正常工作,但我无法为复选框设置验证规则,因为它们都具有相同的名称。我试过..
$this->form_validation->set_rules('fruits[]', 'Apple', 'required|xss_clean');
$this->form_validation->set_rules('fruits[]', 'Banana', 'required|xss_clean');
$this->form_validation->set_rules('fruits[]', 'Peach', 'required|xss_clean');
并使用echo form_error('fruits[]');
显示验证错误但没有任何反应。最终,我想在其提交的状态中显示一个复选框,如果我的表单中的另一个字段发生错误。而是取消选中所有复选框。我不知道如何解决这个问题。
POST
Array ( [FRUITS] => Array ( [0] => apple [1] => banana [2] => peach )
这是检查时
答案 0 :(得分:2)
不使用方括号[]尝试,所以只是'fruits'。
[]只是对浏览器说“将这些值作为数组发布,而不是单个值,因为它们是一个组”,但在PHP中,您只需将其视为任何其他值,即。 $ _POST [ '水果']。
希望有所帮助,
一切顺利, NWN