【问题标题】:Checkbox returns unchecked on form validation error - Codeigniter复选框返回未选中的表单验证错误 - Codeigniter
【发布时间】:2019-03-01 01:19:43
【问题描述】:

我正在尝试提交简单的表单数据以及多个复选框选项。

但在表单验证时,这些复选框选项返回未选中状态。

查看代码

  <?php echo form_checkbox( array('id' => 'check_passport', 'name' => 'purchaser_meta[]','value'=>'Passport','class'=>'form-check-input' )); ?> 
  <?php echo form_label('Passport','check_passport');?>
  <?php  echo form_error('resident_passport');  ?>

控制器代码

$this->load->library('form_validation'); 
$this->form_validation->set_rules('purchaser_meta','Purchaser Type Meta','trim|required');

不过,它会捕获从这些复选框提交的值。

like $this-&gt;input-&gt;post('purchaser_meta') 返回array(3) { [0]=&gt; string(8) "Passport" [1]=&gt; string(4) "Visa" [2]=&gt; string(11) "ID" } 提交的值数组。

进一步查看这些图片。

提交表单并勾选选项

提交表单后发生/form_validation

问题:我希望这些复选框在表单验证错误时保持选中状态。我不知道我在这里缺少什么?

【问题讨论】:

  • 您需要将 $_POST 数据分配给 $this->data["purchaser_meta"] 并在表单中使用此数据在验证后重新填充表单字段。

标签: php html codeigniter validation


【解决方案1】:

当您提交表单时,您会在返回数组中获得复选框的值。 如此简单,您只需检查 if...else..Condition 是否已选中。

$arrayval = array{"Passport","Visa","ID"};

if (in_array("Passport", $arrayval)){
  echo "Checked";
}

为所有复选框输入相同的代码。

也许这些东西对你有帮助。

【讨论】:

    【解决方案2】:

    这样试试

    <?php echo form_checkbox( array('id' => 'check_passport', set_checkbox('purchaser_meta[]','check'), 'name' => 'purchaser_meta[]','value'=>'Passport','class'=>'form-check-input' )); ?>
    

    【讨论】:

    • 我认为您在编写代码时遗漏了一些东西,因为您在没有任何索引的数组中添加了set_checkbox('purchaser_meta[]','check')。请查看此内容。谢谢
    • /> />
    【解决方案3】:

    //用这个替换set_checkbox

    set_checkbox('purchaser_meta', 'Passport', false)

    【讨论】:

      猜你喜欢
      • 2011-10-24
      • 2021-11-19
      • 1970-01-01
      • 1970-01-01
      • 2016-06-25
      • 2014-03-12
      • 2013-01-05
      • 1970-01-01
      • 2020-08-11
      相关资源
      最近更新 更多