复选框返回未选中的表单验证错误-Codeigniter

时间:2018-09-25 12:02:42

标签: php html codeigniter validation

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

但是在表单验证中,这些复选框选项未选中就返回。

查看代码

  <?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');

尽管如此,它捕获了从这些复选框提交的值。

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

进一步查看这些图像。

提交表格且选项已选中

enter image description here

提交表单后/发生表单验证

enter image description here

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

3 个答案:

答案 0 :(得分:0)

当您提交表单时,您将在返回数组中获得复选框的值。 如此简单,您只需检查是否...其他条件。是否已选中或未选中。

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

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

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

也许这对您有帮助。

答案 1 :(得分:0)

尝试这样

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

答案 2 :(得分:0)

//用这个替换set_checkbox

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