首页 > 解决方案 > Set_value() 数组字段选择选项 Codeigniter 不起作用

问题描述

我尝试创建动态服务器端选择输入,在我提交后, 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 并在选项字段中被选中。

标签: phpformscodeignitervalidationcodeigniter-3

解决方案


希望对你有帮助 :

使用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


推荐阅读