有关搜索筛选器的建议



我正在开发一个在codeigniter框架中的网站。我被困在需要实现自动完成功能的地步。我已经尝试了很多,但到目前为止我无法找到合适的解决方案。这是我的实际要求。

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

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

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

当一个人开始在那个搜索框中输入"啊"时,我希望开始出现显示"艾哈迈德"的语义......请告诉我该怎么做?我已经在那里搜索了很多,但我找不到关于编码点火器的正确答案。这就是我的代码目前的样子...

<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 = $this->input->post('individual_name');
$where = "first_name LIKE '".$individual_name."%' OR last_name LIKE '".$individual_name."%'";
$users_array = $this->user_profile_model->findByCondition($where);

第一个问题$individual_name 未填充。

第二个问题当我收到users_array的结果时,我下一步应该怎么做?如何传回以显示建议??

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

P.S->也请告诉我如何回复回答我这个问题的人......我已经与用户一起使用了@sign,但似乎他们没有得到我的回复,这就是他们从未返回的原因......

任何帮助都将是非常可观的...

谢谢和等待艾哈迈德

尝试这样的事情, 您可能需要稍微更改代码以适合您,

在脚本部分中:

$("#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;
}

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

最新更新