如果在Codeigniter中的编辑表单中验证失败,请重新填充复选框

时间:2014-08-17 23:34:17

标签: php forms codeigniter checkbox

我在codeigintier中处理数据编辑表单。问题在于重新填充复选框

如果它是一个添加形式(这意味着我不需要关心数据库中的值)它是有效的:

 <?= set_checkbox('is_default', '1'); ?> for checkbox

问题是,在编辑表格中:

我无法重新填充复选框

<?php if ($customer_group[0]['is_default'] == "1") echo "checked"; set_checkbox('is_default', '1'); ?>

即使我没有在edit =&gt;中检查它,该复选框也会检查未能在表格中验证,谢谢你的帮助

我已经在控制器中设置了验证规则,添加表单中的代码正在运行,但如何处理编辑表单的情况?

5 个答案:

答案 0 :(得分:2)

为了重新填充复选框,代码可能会有所帮助:

set_checkbox('fieldName', 'fieldValue');

其中'value'是form_checkbox调用的第二个参数。像这样:

form_checkbox('fieldName[]', 'value', set_checkbox('fieldName', 'value'));

现在,如果你在编辑表格上,那么下面的代码可以帮助你

$getVal=$valFromDb; //$valFromDb is actually value of the filed from db as you are on edit page
if($getVal!=0){
{
   echo form_checkbox('fieldName[]', 'value', true);
}
else
{
   echo form_checkbox('fieldName[]', 'value', false);
}

答案 1 :(得分:1)

可以给出一个建议吗? 1.当您指向编辑页面时,隐藏输入框中所有选中复选框的值。

  1. 如果在编辑页面中选中复选框,则编辑文本框值的隐藏输入字段的值。

  2. 提交,验证失败时,根据隐藏字段值选中或重新填充复选框值。从控制器通过数组发送复选框字段的复选框值来编辑页面视图。例如$ data ['repopulate_checks'] = $ this-&gt; input-&gt; post('checkbox name of checkboxs'); 在视图中: 得到这样的 $ catch_checkbox = $ repopulate_checks; 你也可以直接通过$ repopulate_checks。 希望这对你有帮助。

答案 2 :(得分:1)

您可以使用form_checkbox()函数:Guide

$isChecked = False; // or True for default value

如果已存储数据:

$isChecked = $customer_group[0]['is_default']; echo form_checkbox('input_name', 'value', $isChecked);

或艰难的方式: set_checkbox():

  

第一个参数必须包含复选框的名称,第二个参数   参数必须包含其值,以及第三个(可选)参数   允许您将项目设置为默认值(使用布尔值TRUE / FALSE)

<input type="checkbox" name="is_default" value="1" <?php echo ($customer_group[0]['is_default']) ? set_checkbox('is_default', '1') : '' ; ?>/>

答案 3 :(得分:1)

set_checkbox采用第三个参数来设置默认状态,所以基本上你必须做这样的事情

echo set_checkbox('is_default', 1, $customer_group[0]['is_default'] == "1"); 

答案 4 :(得分:0)

set_checkbox采用第三个参数来设置默认状态,所以基本上你必须做这样的事情

$checked = FALSE; if($customer_group[0]['is_default']){ $checked = TRUE; }

echo set_checkbox('is_default', 1, $checked);