【问题标题】:Option selected in codeigniter在 codeigniter 中选择的选项
【发布时间】:2015-03-23 10:21:59
【问题描述】:

我正在尝试使用 Codeigniter 在表单选择元素中选择选项项

型号

function get_sections_provider($provider)
{
    $this->db->select('*');
    $this->db->from('providers');
    $this->db->where('providers.id', $provider);
    $this->db->join('sections', 'sections.id = providers.section_id');
    $query = $this->db->get();
    return $query->result();
}

function get_all_sections_element()
{
    $query = $this->db->get('sections');
    return $query->result();
}

控制器

public function edit($id)
{
    $data['element'] = $this->admin_model_providers->get_element_provider($id);
    $data['element']->sections = $this->admin_model_providers->get_sections_provider($id);
    $data['element']->sections_all = $this->admin_model_providers->get_all_sections_element();
    $data['title'] = '';
    $this->load->view('admin/admin_provider_edit', $data);
}

查看

<?
foreach($element->sections as $key => $row){
    $selected[$key] = $row->id;
}?>
<select name="sections" class="chosen-select" id="" data-placeholder="" multiple>                           
    <?
    foreach($element->sections_all as $key => $value){?>
        <option value="<?=$value->id?>" <?=(in_array($value->id, $selected) ) ? "selected = 'selected'" : "" ;?> ><?=$value->title;?></option>
    <?}
    ?>
</select>

结果是最后一个id 抱歉,我的英语不好,无法详细描述问题

【问题讨论】:

  • 你能告诉我们你在$element中得到的数组结构吗
  • 我更新了问题
  • 您是在$data['element']-&gt;sections 内获取数组还是单个值。
  • 如果我这样做 foreach($element->sections as $key => $row){ echo $row->id; } 有多个
  • 那么您是在页面内的多个位置使用$data['element']-&gt;sections,还是仅用于select 选项,如果它用于一个选择,请考虑您只会从查询中收到特定的ID

标签: php codeigniter


【解决方案1】:

试试看:

<?php
  $array = null ; // $array[''] = 'Select'; // Use of need Default like Select 
  $select_value='';
   foreach ($element->sections as $value) {
     $array[$value->id] = $value->name;
   }
  echo form_dropdown('name', $array, $select_value, $style);
?>                 

【讨论】:

    【解决方案2】:

    如果它适合您,这可能会帮助您尝试此代码..

    foreach($element->sections_all as $key => $value){
        <option value="<?php echo $value['id'];>" <?php echo (in_array($value['id']),$element['sections'][$key]['id']) ? "selected = 'selected'" : "" ;?>><?php echo $value['title'];?></option>
    }
    

    【讨论】:

    • 几分钟,现在开始测试
    • 我将查询更改为数据库,设置 result_array().. 并更正代码.. $value){?> }?>
    • 消息:in_array() 期望参数 2 是数组,给定字符串
    【解决方案3】:

    $selected 是一个数组。如果您想在 foreach 中比较其中一个元素,请尝试:

     foreach($element->sections as $key => $row){
        $selected[$key] = $row->id;
    }
    

    进行比较的Foreach:

    foreach ($element->sections_all as $k => $section) {
        if ($section->id == $selected[$k]){
        //etc...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-11
      • 2021-03-19
      • 2016-04-21
      • 2022-06-14
      • 1970-01-01
      • 2011-03-29
      • 1970-01-01
      • 2021-04-09
      相关资源
      最近更新 更多