从自动填充查询中插入与文本框不同的值

时间:2014-10-31 04:29:48

标签: javascript jquery codeigniter select autocomplete

我在使用jquery的自动完成功能时遇到了一些麻烦。我需要我的模型中的查询中的一个字段(使用codeigniter btw)来返回另一个值,我将不胜感激任何帮助,谢谢。

       $(function(){
        $('#buscador').autocomplete({
            minLength: 1,
            source: "home/get_cliente",

            select: function(event, ui){
                event.preventDefault();
                $('#buscador').val(ui.item.value);  
                $('#apellidos').val(ui.item.apellidos); 
            }
            });
        }); 

1 个答案:

答案 0 :(得分:0)

嗯,我得到了答案,我不得不改变模型中数组中的变量名称,如下所示:

模型:

function get_cl($q){
$this->db->select('*');
$this->db->like('nombres', $q);
$query = $this->db->get('clientes');
if($query->num_rows > 0){
  foreach ($query->result_array() as $row){
    $new_row['label'] = htmlentities(stripslashes($row['nombres'])); //build an array
    $new_row['value'] = htmlentities(stripslashes($row['id_cliente']));
    $row_set[] = $new_row;
}
  echo json_encode($row_set); //format the array into json data
}

}

控制器:

function get_cliente(){

if (isset($_GET['term'])){
  $q = strtolower($_GET['term']);
  $this->autocompletado_model->get_cl($q);
}

}

JS:

       $(function(){

        $('#buscador').autocomplete({
            minLength: 1,
            source: "home/get_cliente",

            focus: function(event,ui){
                $('#buscador').val(ui.item.label);
                return false;
            },
            select: function(event, ui){
                id_cliente = ui.item.value;
                $('#id_cliente').val(id_cliente);
                return false;  
            }
        });