Set_value()数组字段选择选项Codeigniter不起作用

时间:2018-07-18 10:14:04

标签: php forms codeigniter validation codeigniter-3

我尝试创建动态服务器端选择输入,提交后,set_value('nilai []')没有显示任何值。

以下是我的控制器:

    $this->load->library('form_validation');

    $this->form_validation->set_rules('nilai[]', 'Nilai Pantuhir', 'required');

    if ($this->form_validation->run() == FALSE)
    {
      $this->load->view('pantuhir/pantuhir_form');
    } else {
      $list_pantuhir = $this->input->post('nilai');

      foreach ($list_pantuhir as $key => $value) {
        echo $value."<br />";
      }
    }

以下是我的观点:

    <div class="form-group <?php if(form_error('nilai[]')){echo 'has-error';} ?>">
      <select class="form-control" name="nilai[]">
        <option value="">- Choose-</option>
        <option value="<?php echo $rowPerson['intUserId'].'-'.'A';?>" <?php if(set_value('nilai[]') == $rowPerson['intUserId'].'-'.'A') { echo 'selected'; } ?>>A</option>
        <option value="<?php echo $rowPerson['intUserId'].'-'.'B';?>" <?php if(set_value('nilai[]') == $rowPerson['intUserId'].'-'.'B') { echo 'selected'; } ?>>B</option>
     </select>
     <?php echo form_error('nilai[]'); ?>
    </div>

如果验证不正确,我想显示set_value并在选项字段中选择它。

2 个答案:

答案 0 :(得分:1)

希望这对您有帮助:

使用set_select代替set_value。如果您使用菜单,则此功能允许您在表单验证引发任何错误后显示所选菜单项

应该是这样的:

<div class="form-group <?php if(form_error('nilai[]')){echo 'has-error';} ?>">
    <select name="nilai[]" >
      <option value="" >---Choose----</option>
      <option 
              value="<?=$rowPerson['intUserId'].'-A';?>" 
              <?=set_select('nilai[]', $rowPerson['intUserId'].'-A');?>
      >A</option>
      <option 
              value="<?php echo $rowPerson['intUserId'].'-B';?>" 
              <?=set_select('nilai[]', $rowPerson['intUserId'].'-B');?> 
      >B</option>
    </select>
<?php echo form_error('nilai[]'); ?>
</div>

更多信息:https://www.codeigniter.com/user_guide/helpers/form_helper.html#set_select

答案 1 :(得分:0)

在视图中使用此代码

<div class="form-group <?php if(form_error('nilai[]')){echo 'has-error';} ?>">
  <select class="form-control" name="nilai[]">
    <option value="">- Choose-</option>
    <option value="<?php echo $rowPerson['intUserId'].'-'.'A';?>" <?php if(set_value('nilai[]',rowPerson['intUserId'].'-'.'A') == $rowPerson['intUserId'].'-'.'A') { echo 'selected'; } ?>>A</option>
    <option value="<?php echo $rowPerson['intUserId'].'-'.'B';?>" <?php if(set_value('nilai[]',$rowPerson['intUserId'].'-'.'B') == $rowPerson['intUserId'].'-'.'B') { echo 'selected'; } ?>>B</option>
 </select>
 <?php echo form_error('nilai[]'); ?>
</div>
相关问题