Php 关于搜索过滤器的建议

Php 关于搜索过滤器的建议,php,codeigniter,autocomplete,autosuggest,Php,Codeigniter,Autocomplete,Autosuggest,我正在codeigniter框架中的一个网站上工作。我被困在需要实现自动完成功能的地方。我已经尝试了很多,但到目前为止我还没有找到合适的解决办法。以下是我的实际需求 网站上有一个页面几乎没有搜索过滤器。当一个人登陆此页面时,网站的所有用户都会显示在该页面上。真正的游戏开始了。有一个过滤器或输入框,根据结果的名字或姓氏过滤出结果 假设我有一个数据库,其中有3个用户 艾哈迈德·纳瓦兹 约翰·阿扎尔 莫妮卡·芬莱 当一个人开始在搜索框中输入“啊”时,我希望提示开始出现,显示他“Ahmad”。。。请告诉

我正在codeigniter框架中的一个网站上工作。我被困在需要实现自动完成功能的地方。我已经尝试了很多,但到目前为止我还没有找到合适的解决办法。以下是我的实际需求

网站上有一个页面几乎没有搜索过滤器。当一个人登陆此页面时,网站的所有用户都会显示在该页面上。真正的游戏开始了。有一个过滤器或输入框,根据结果的名字或姓氏过滤出结果

假设我有一个数据库,其中有3个用户

艾哈迈德·纳瓦兹 约翰·阿扎尔 莫妮卡·芬莱

当一个人开始在搜索框中输入“啊”时,我希望提示开始出现,显示他“Ahmad”。。。请告诉我怎么做?我已经搜索了很多,但我找不到一个正确的答案,关于“共点火器”。这就是我的代码目前的样子

<input type="text" placeholder="Persons Name" name="individual_name" id="individual_name">


<script>
$(function() {
$( "#individual_name" ).autocomplete({
source: ('autocomplete_individual_name'),
select: function () {
testing()
}
});
});
</script>
第一个问题 $individual_name未填充

第二个问题 当我在users_数组中收到结果时,我接下来应该做什么?如何将其传回以显示建议

第三个问题 我使用onkeyup()调用一个过滤函数。现在,当一个人通过建议选择如何调用过滤器时

另外,请告诉我如何回复回答这个问题的人…我使用了@sign with user,但他们似乎没有收到我的回复,这就是他们从未返回的原因

任何帮助都是非常值得的

谢谢,等一下
Ahmad

尝试类似的方法,您可能需要稍微更改代码以适合您

在脚本部分:

$("#individual_name").autocomplete({
    source         : base_url+"controller_name/suggest_names",
    minLength      : 1,
    select: function( event, ui ) {
        alert('id :'+ui.item.value) ;
        //document.location.href  = base_url+"controller_name/search?keyword="+ui.item.value; do something or redirect
    },
    success : function(resp){
        //alert("auto");
    },
    error : function(){
        alert("Oops, that didn't work. Please try again.");

    }
});
在控制器中:

function suggest_names(){
    print_r ( $this->model_name->suggest_names($_REQUEST['term']) );
}
在模型部件中:

function suggest_names($term){
    $data   = array();
    $term   = strtolower( addslashes( trim( urldecode($term) ) ) );
    $temp   = $this->db->select('name as label, id as value')->like('name', $term, 'LEFT')->get('table_name')->result_array();
    $data   = json_encode($temp);
    //echo "<pre>";print_r($data);echo "</pre>";die;
    return $data;
}
函数建议名称($term){
$data=array();
$term=strtolower(addslashes(trim(urldecode($term)));
$temp=$this->db->select('name as label,id as value')->like('name',$term,'LEFT')->get('table_name')->result_array();
$data=json_encode($temp);
//echo“”;print_r($data);echo“”;die;
返回$data;
}

如果你遇到任何问题,请告诉我。希望对你有用。

很好用……但我有点小问题。我使用ajax的keyup函数根据输入更新结果。但根据我们刚刚得出的建议,当你用鼠标选择任何东西时,它不会更新结果。也就是说,它不会调用函数,因为它是在“向上键”时调用的……当用户用鼠标单击建议时如何调用它?您不会在
keyup事件上更新
alert('id:'+ui.item.value)),而是查看它在哪里发出警报
alert('id:'+ui.item.value)。这是此处的选择事件更新。
function suggest_names($term){
    $data   = array();
    $term   = strtolower( addslashes( trim( urldecode($term) ) ) );
    $temp   = $this->db->select('name as label, id as value')->like('name', $term, 'LEFT')->get('table_name')->result_array();
    $data   = json_encode($temp);
    //echo "<pre>";print_r($data);echo "</pre>";die;
    return $data;
}