【问题标题】:Can I get a form_multiselect() to return the values I pass in rather than indexes?我可以获得一个 form_multiselect() 来返回我传入的值而不是索引吗?
【发布时间】:2014-05-29 15:45:18
【问题描述】:

我有一个form_multiselect() 来搜索具有关联标签的项目。 我的表格:

<div class="control-group">
       <?= form_label('Tags: ', 'tag', $label_attr);?>

       <div class="controls">
           <?= form_multiselect('tag[]',$tags,'','id="tag-select"');?>
       </div>
</div>

然后我使用模型中的 get_tags() 填写表格:

public function get_tags() {
    $this->db->select('tag_name');
    $this->db->distinct();
    $this->db->from('offers_tags');

    $query = $this->db->get();

    $results = $query->result_array();

    $tags_arr= array();
    $i = 0;
    foreach ($results as $id => $tag_name){
        foreach ($tag_name as $name){
            $tags_arr[$i] = $name;
            ++$i;
        }
    }

    return $tags_arr;      
}

我遍历查询返回的关联$results 数组。如果没有,当我只想点击标签名称列表时,表单将填充索引及其关联的数组。

提交后,我获取数据,然后将该数据传递到更大的查询中以获取结果,其中包含以下内容:

$tag_arr = $this->input->get('tag');

然后我遇到的问题是表单得到的只是从表单中选择的任何标签的索引。我需要将实际标签作为通过 get 返回的字符串。 前任: /../../..&tag%5B%5D=8 8 是我选择的标签的索引,而不是我需要标签。

非常感谢任何帮助,谢谢。

**测试更新: 仍然没有解决方案来获得正确的数据。但我尝试将查询中的results_array() 传递给form_multiselect(),然后在选择一个项目后获得什么,得到的只是值'tag_name'。所以我假设它传递了查询从中提取的元组的名称,因为它是一个关联数组。

还尝试循环遍历结果以通过循环从results_array() 传递一个新数组:

foreach ($results as $id => $tag_name){
   $tags_arr[$id] = $tag_name;
}

所以仍然希望从表单中获取字符串数据。我可以得到元组的名字和字符串数据的索引。

我找不到使用array_values() 函数的信息。所以我试过这个无济于事,仍然有来自多选的“提交”返回索引值,完成我的get_tags()函数:

$tags_final = array_values($tags_arr);
return $tags_final;

仍在寻找答案,请帮助或解决这个问题,至少已经好几个星期了。

【问题讨论】:

    标签: php mysql arrays codeigniter get


    【解决方案1】:

    对于遇到相同问题的个人:

    以下对结果查询执行的 for 循环成功了!

        $query = $this->db->get();
        $tags = array();
    
        foreach($query->result() as $row)
        {
             $tags[$row->tag_id] = $row->tag_name;
        }
        return $tags;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-18
      • 1970-01-01
      • 2015-03-15
      • 1970-01-01
      • 1970-01-01
      • 2017-05-21
      相关资源
      最近更新 更多