【问题标题】:Codeigniter checkbox arrayCodeigniter 复选框数组
【发布时间】:2011-05-30 17:50:02
【问题描述】:

我的复选框看起来像这样

<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[]'); 显示验证错误,但没有任何反应。最终,如果我的表单中的另一个字段发生错误,我想在提交的状态下显示一个复选框。相反,所有复选框都取消选中。我不确定如何解决这个问题。

发布

Array ( [FRUITS] => Array ( [0] => apple [1] => banana [2] => peach )

这是他们被检查的时候

【问题讨论】:

  • 你能给我们你的帖子吗?将其放在表单验证之前 print_r($_POST);死();
  • 是的,更新了我的问题

标签: php jquery forms codeigniter


【解决方案1】:

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

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

希望对你有帮助,

一切顺利, NwN

【讨论】:

  • 为了澄清,保留 HTML 中的括号,但将它们放开: $this->form_validation->set_rules('fruits', 'Apple', 'required|xss_clean');
  • 谢谢!但没有括号它不起作用。我最终添加了一个循环。
  • 实际上 jquery 似乎可以使用任何名称,只要它是一个复选框。你可能是对的
猜你喜欢
  • 1970-01-01
  • 2013-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多