Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php jquery使用json自动完成多个_Php_Jquery_Json_Autocomplete_Jquery Autocomplete - Fatal编程技术网

Php jquery使用json自动完成多个

Php jquery使用json自动完成多个,php,jquery,json,autocomplete,jquery-autocomplete,Php,Jquery,Json,Autocomplete,Jquery Autocomplete,我正在处理jquerymultipleautocomplete,然而,当我键入一些内容时,所有的项目都会被发布,而不是匹配的项目。我的Javascript是 $('.tags').bind("keydown", function(event) { if (event.keyCode === $.ui.keyCode.TAB && $(this).data("autocomplete").menu.active) { event.preventDefault();

我正在处理jquerymultipleautocomplete,然而,当我键入一些内容时,所有的项目都会被发布,而不是匹配的项目。我的Javascript是

$('.tags').bind("keydown", function(event) {
if (event.keyCode === $.ui.keyCode.TAB && $(this).data("autocomplete").menu.active) {
    event.preventDefault();
    }
}).autocomplete({
    source : function(request, response) {
        $.getJSON($.cookie('base_url') + "js/getaddressbook.php", {
            term : extractLast(request.term)
        }, response);
    },
    search : function() {
        var term = extractLast(this.value);
        if (term.length < 2) {
            return false;
        }
    },

    focus : function() {
        return false;
    },
    select : function(event, ui) {
        var terms = split(this.value);
        terms.pop();
        terms.push(ui.item.value);
        terms.push("");
        this.value = terms.join("; ");
        return false;
    }
});
而公共_模型具有此功能

Public function getaddressbook() {
        $this -> load -> model('common_model');
        $data = $this -> common_model -> addressbook();
        echo json_encode($data);
    }
Public function addressbook()
    {
        $this -> db -> select('emailid');
        $this -> db ->where('emailid <>','');
        $result = $this -> db -> get('addressbook');
        if ($result -> num_rows() > 0)
        {
            foreach ($result->result() as $row)
            {
                $data[] = $row -> emailid;
            }
            return ($data);
        }
        else
        {
            return FALSE;
        }
    }
公共函数通讯簿()
{
$this->db->select('emailid');
$this->db->where('emailid','');
$result=$this->db->get('addressbook');
如果($result->num_rows()>0)
{
foreach($result->result()作为$row)
{
$data[]=$row->emailid;
}
返回($数据);
}
其他的
{
返回FALSE;
}
}

您没有在控制器中的任何位置传递术语

当然,使用该术语来查询数据库,例如:

$this->db->like('column_name', $term);  
对于您的代码,它可以是:

Public function getaddressbook() {
        $this -> load -> model('common_model');
        $term = $this->input->get('term');
        $data = $this->common_model->addressbook($term);
        echo json_encode($data);
    }

Public function addressbook($term)
    {
        $this -> db -> select('emailid');
        $this -> db ->where('emailid <>','');
        $this->db->like('column_name', $term);
        $result = $this -> db -> get('addressbook');
        if ($result -> num_rows() > 0)
        {
            foreach ($result->result() as $row)
            {
                $data[] = $row -> emailid;
            }
            return ($data);
        }
        else
        {
            return FALSE;
        }
    }
公共函数getaddressbook(){
$this->load->model('common_model');
$term=$this->input->get('term');
$data=$this->common_model->addressbook($term);
echo json_编码($data);
}
公共功能通讯录($term)
{
$this->db->select('emailid');
$this->db->where('emailid','');
$this->db->like('column\u name',$term);
$result=$this->db->get('addressbook');
如果($result->num_rows()>0)
{
foreach($result->result()作为$row)
{
$data[]=$row->emailid;
}
返回($数据);
}
其他的
{
返回FALSE;
}
}

问题似乎出在getaddressbook.php逻辑中。你能分享一些代码吗?对不起,Adunahay,我已经编辑了我的问题并把代码放进去了…没问题。我认为mallix的答案是正确的!如果其post使用:$this input->post('term');否则使用$this->input->get('term')。取决于您的自动完成js。您的代码表示一个get方法,请参见$.getJSONHey感谢Mallix,它的工作方式很有魅力。:)但是,我现在无法获得多重自动完成:(不确定我会错在哪里。这是我猜的另一个问题。我猜这是一个问题。value=terms.join(“;”),因为我放了一个“,”,它工作得很好。哦,是的,我做了!但是请mallix帮我再做一件事,我如何让它使用分号而不是逗号。