php - 我可以让 form_multiselect() 返回我传入的值而不是索引吗?

标签 php mysql arrays codeigniter get

我有一个 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 返回的字符串。 前任: /../../..&标签%5B%5D=8 8 是我选择的标签的索引,而不是我需要该标签。

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

**测试更新: 仍然没有解决方案来获取正确的数据。但我尝试将查询中的 results_array() 传递到 form_multiselect() 中,然后选择一个项目后获得的内容,get 仅提取值“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;

仍在寻找答案,请提供帮助或至少解决这个问题,已经过去几周了。

最佳答案

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

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

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

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

关于php - 我可以让 form_multiselect() 返回我传入的值而不是索引吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23937351/

相关文章:

php - 自定义 PHP_CodeSniffer (CodeSniffer) 标准

php - Windows 上的 Memcache PHP 扩展

php - 安全地发布并打印 JavaScript 标签

mysql - 算出约会之间的天数

javascript - 无法设置多维 javascript 数组的属性

javascript - 为什么我的图像预加载方法有效?

php - 日期范围搜索

javascript - 如何在 Angularjs 中分割日期和时间?

php表单从url获取参数并存储到最终页面

javascript - [].slice 或 Array.prototype.slice