【问题标题】:Set_value() Array fields select option Codeigniter not workingSet_value() 数组字段选择选项 Codeigniter 不起作用
【发布时间】:2018-07-18 10:14:04
【问题描述】:

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

【问题讨论】:

    标签: php forms codeigniter validation codeigniter-3


    【解决方案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

    【讨论】:

    • 我们可以仅在选择该错误时添加 form_error 吗?因为当一个选择错误时,所有选择输入也会显示错误。
    • form_error 使用名称属性识别错误,因此使用不同名称的选择将适用于您,只需从表单 &lt;?php echo form_error('nilai[]'); ?&gt; 中删除最后一个 form_error 并使用错误类来显示错误,就像您在顶部
    【解决方案2】:

    在视图中使用此代码

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

    【讨论】:

      猜你喜欢
      • 2016-04-21
      • 1970-01-01
      • 2013-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-10
      • 1970-01-01
      • 2020-05-01
      相关资源
      最近更新 更多