Codeigniter复选框数组

时间:2011-05-30 17:50:03

标签: php jquery forms codeigniter

我的复选框看起来像这样

<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 )

这是检查时

1 个答案:

答案 0 :(得分:2)

不使用方括号[]尝试,所以只是'fruits'。

[]只是对浏览器说“将这些值作为数组发布,而不是单个值,因为它们是一个组”,但在PHP中,您只需将其视为任何其他值,即。 $ _POST [ '水果']。

希望有所帮助,

一切顺利, NWN