我正在codeigniter框架中的一个网站上工作。我陷入了需要实现自动完成功能的地步。我已经尝试了很多,但到目前为止我找不到合适的解决方案。这是我的实际要求。
网站上有一个搜索过滤器很少的页面。当某人登陆此页面时,该网站上的所有用户都会显示在该页面上。真正的游戏开始了。有一个过滤器或输入框可根据其姓氏或名字过滤掉结果。
假设我有一个数据库,其中我有3个用户。
艾哈迈德纳瓦兹 约翰·阿扎尔 Monica Finlay当一个人在该搜索框中开始输入“Ah”时,我希望sugesstions开始显示他“Ahmad”...请告诉我该怎么做?我在那里搜索了很多但是我找不到关于codeignitor的正确答案。这就是我的代码目前的样子......
<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()。现在当一个人通过建议选择如何调用过滤器时?
PS-&gt;另外请让我知道如何回复在这个问题上回复我的人...我已经使用@ sign与用户但似乎他们没有得到我的回复,这就是为什么他们从未返回.. ..
任何帮助都会非常值得赞赏......
谢谢等待 艾哈迈德
答案 0 :(得分:0)
尝试这样的事情,您可能需要稍微更改代码以适合您,
在你的脚本部分:
$("#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;
}
如果您遇到任何问题,请告诉我。希望它适合你。