Php Codeigniter set_checkbox()保持选中状态
我认为有以下代码:Php Codeigniter set_checkbox()保持选中状态,php,codeigniter,checkbox,Php,Codeigniter,Checkbox,我认为有以下代码: <input type="checkbox" name="test[]" value="1" <?php echo set_checkbox("test[]", "1") ?> >test1 <input type="checkbox" name="test[]" value="2" <?php echo set_checkbox("test[]", "2") ?> >test2 这些复选框不是必需的,但是表单上的一些其他
<input type="checkbox" name="test[]" value="1" <?php echo set_checkbox("test[]", "1") ?> >test1
<input type="checkbox" name="test[]" value="2" <?php echo set_checkbox("test[]", "2") ?> >test2
这些复选框不是必需的,但是表单上的一些其他字段是必需的。我希望在发布表单时保留这些复选框的状态。如果选中复选框中的值,则这些值将显示在POST中,但是当表单在POST之后再次加载时,不会保持选中状态。如果在POST之前选中了其中的一些值,则希望在POST之后对其进行选中。我也试过设置复选框“test”,“1”,但没有成功。其他文本字段上的值使用set_value函数保存,工作正常。从set_checkbox方法调用中删除[]
有关更详细的答案,请参见从set_checkbox方法调用中删除[]
有关更详细的答案,请参见我意识到设置复选框需要3个参数:
set_checkbox(string $checkboxname, string $value, boolean $isChecked);
例如:
echo form_checkbox('mycbx[]',
$item['id'],
set_checkbox('mycbx[]', $item['id'], false)
);
或者这样:
$checkbox = array(
'name' => 'mycbx[]',
'value' => $item['id'],
'checked' => set_checkbox('mycbx[]', $item['id'], false)
);
echo form_checkbox($checkbox);
我意识到set_复选框包含3个参数:
set_checkbox(string $checkboxname, string $value, boolean $isChecked);
例如:
echo form_checkbox('mycbx[]',
$item['id'],
set_checkbox('mycbx[]', $item['id'], false)
);
或者这样:
$checkbox = array(
'name' => 'mycbx[]',
'value' => $item['id'],
'checked' => set_checkbox('mycbx[]', $item['id'], false)
);
echo form_checkbox($checkbox);
设置复选框'mycheckbox','value',TRUE设置复选框'mycheckbox','value',TRUE在视图中添加如下行:
<input type="checkbox" name="mycheck[]" value="1" <?php echo set_checkbox('mycheck[]', '1', true); ?> />
set_checkbox('test', 'value');
最后,确保没有通过输入状态显式地将输入项设置为选中。这将覆盖codeigniter参数。换句话说,不要这样做
就这样。应该很有魅力 在您的视图中添加一行,如下所示:
<input type="checkbox" name="mycheck[]" value="1" <?php echo set_checkbox('mycheck[]', '1', true); ?> />
set_checkbox('test', 'value');
最后,确保没有通过输入状态显式地将输入项设置为选中。这将覆盖codeigniter参数。换句话说,不要这样做
就这样。应该很有魅力 在表单中使用类似test[]的数组时,不需要在set\u复选框调用中包含方括号[] 设置_复选框应始终如下所示:
<input type="checkbox" name="mycheck[]" value="1" <?php echo set_checkbox('mycheck[]', '1', true); ?> />
set_checkbox('test', 'value');
其中“value”是表单复选框的第二个参数。在表单中使用类似test[]的数组时,不需要在set\u checkbox调用中包含方括号[] 设置_复选框应始终如下所示:
<input type="checkbox" name="mycheck[]" value="1" <?php echo set_checkbox('mycheck[]', '1', true); ?> />
set_checkbox('test', 'value');
其中“value”是表单复选框的第二个参数。试试这个家伙,他为我工作: 只需将值放入[]
<input type="checkbox" name="test[1]" value="1" <?php echo set_checkbox("test[1]", "1") ?> >test1
<input type="checkbox" name="test[2]" value="2" <?php echo set_checkbox("test[2]", "2") ?> >test2
试试这个为我工作的家伙: 只需将值放入[]
<input type="checkbox" name="test[1]" value="1" <?php echo set_checkbox("test[1]", "1") ?> >test1
<input type="checkbox" name="test[2]" value="2" <?php echo set_checkbox("test[2]", "2") ?> >test2
看啊看啊,我把它们取下来了,但还是不起作用。只有对它们进行一些验证,它才会起作用。如果我将它们设置为必填项,并提交表格,则效果良好。但问题是它们不是必需的。可能其他一些字段的验证将失败,并且这些复选框将不会重新填充。在你发布的链接中,它说我应该使用$this->form_validation->set_rules'checkbox_name'、'checkbox_title'、'trim';但是“修剪”不能单独工作。你有没有想过要进行一些无意义的验证来让它工作?你可以检查长度是否小于9999。我删除了它们,但仍然无法工作。只有对它们进行一些验证,它才会起作用。如果我将它们设置为必填项,并提交表格,则效果良好。但问题是它们不是必需的。可能其他一些字段的验证将失败,并且这些复选框将不会重新填充。在你发布的链接中,它说我应该使用$this->form_validation->set_rules'checkbox_name'、'checkbox_title'、'trim';但是“修剪”不能单独工作。你有没有想过要进行一些毫无意义的验证来让它工作?你可以检查长度是否小于9999。