自动完成文本未显示实际数据代码点火器?

Posted

技术标签:

【中文标题】自动完成文本未显示实际数据代码点火器?【英文标题】:Autocomplete text not showing actual data codeigniter? 【发布时间】:2020-01-09 07:23:59 【问题描述】:

代码:

<script src="<?php echo base_url(); ?>resource/js/jquery.tokeninput.js"></script>
<script>
    $("#dilivery_area_pincode").tokenInput("<?php echo base_url(); ?>admin/search", 
        minChars: 2
    );
</script>
<input type="text" class="form-control" id="dilivery_area_pincode" name="dilivery_area_pincode">

控制器:

public function search()

    $searchTerm = $_GET['q'];
    $this->db->select('id,name');
    $this->db->from('pincode');
    $where = "name like '%".$searchTerm."%'";
    $this->db->where($where);
    $sql = $this->db->get();
    $result = $sql->result_array();

    $skillData = array();
    if($sql->num_rows() > 0)
        foreach($result as $row)
        
            $skillData[] = $row;
        
    
    echo json_encode($skillData);

在这段代码中,我创建了一个自动完成建议框,它工作正常,但问题是当我在文本框中按下键时,只显示名称我想显示 idname 并且当我发出警报时然后只有 id 会显示在我的警报框中。那么,我该怎么做呢?请帮帮我。

谢谢

【问题讨论】:

【参考方案1】:

您当前的array 没有这两个值。请使用以下代码:

foreach($result as $key =>  $row)

    $skillData[$key]['id'] = $row['id'];
    $skillData[$key]['name'] = $row['name'];
 

希望对你有帮助!!

【讨论】:

【参考方案2】:

您可以使用idname 的组合创建一个字符串。

例如:

if($sql->num_rows() > 0)
    foreach($result as $row)
    
        $skillData[] = $row['id'].'-'.$row['name'];
    

如果你只想得到idname 然后用javascript的split函数分割它。

【讨论】:

以上是关于自动完成文本未显示实际数据代码点火器?的主要内容,如果未能解决你的问题,请参考以下文章

使用数据库在laravel中自动完成文本字段

JQueryUI 自动完成结果未显示,但出现在 DevTools 中

我的 jquery 自动完成功能不起作用

Jquery自动完成未显示应出现在输入元素下方的值列表

带有对象代码和描述的角材料自动完成

jquerymobile自动完成列表未隐藏