使用AJAX codeigniter自动搜索 [英] Codeigniter autosearch using ajax
问题描述
Ajax调用并不GT到控制器时,我同意了
=========== Ajax的自动完成搜索========================
<脚本类型=文/ JavaScript的SRC =JS / jQuery的-1.8.0.min.js>< / SCRIPT>
<脚本类型=文/ JavaScript的>
$(函数(){
$(搜索)。KEYUP(函数()
{
VAR searchid = $(本).VAL();
// VAR dataString =搜索='+ searchid;
如果(searchid!='')
{
$阿贾克斯({
键入:POST,
网址:?< PHP的回声BASE_URL()/搜索/查找;&GT?
数据:{searchid:searchid}
缓存:假的,
成功:函数(HTML)
{
警报(HTML);
$(#结果)。html的(HTML).show();
}
});
}返回false;
});
$(#结果).live(点击,功能(五){
变量$点击= $(e.target);
变量$名称= $ clicked.find('的名字。)HTML()。
VAR德codeD = $(< DIV />中)。HTML($名)的.text();
$('#searchid)VAL(德codeD)。
});
(文档)$ .live(点击,功能(五){
变量$点击= $(e.target);
如果(!$ clicked.hasClass(搜索)){
$(#结果)淡出()。
}
});
$('#searchid)。点击(函数(){
$(#结果)淡入()。
});
});
< / SCRIPT>
=============================控制器================= ========
公共职能的搜索()
{
// $ Q = mysql_real_escape_string($ _ POST ['搜索']);
//echo"helloooo".$q;
//死();
$ searchid = $这个 - >输入 - >后期('searchid');
回声AAAAAAA$ searchid。
死();
//回声名$名。
//死();
$数据= $这个 - > search_model->自动完成($ Q);
//的print_r($的数据);
}
}
=============================模型================= =====
公共功能自动完成($ Q)
{
$这个 - > DB->选择('UID','名');
$这 - > DB-肽从('tbl_reg');
// $这 - > DB-化合物其中('SUP preSS',0);
$这个 - > DB->像(名称,$ Q'两个');
$这个 - > DB-> ORDER_BY(名,ASC);
$查询= $这个 - > DB->获得();
//回声查询$查询。
//死();
// $查询= $这个 - > DB->查询(选择tbl_reg *其中名称='$名字');
/ **
$ whereCondition =阵列(名称=> $搜索);
$这个 - > DB-化合物其中($ whereCondition);
$这 - > DB-肽从('tbl_reg');
$查询= $这个 - > DB->获得();
返回$查询 - >的结果();
** /
如果($查询 - > NUM_ROWS()大于0)
{
的foreach($查询 - >的结果()为$行)
{
$数据[] = $行;
}
//回声查询$查询。
//死();
//的foreach($查询 - > result_array()为$行){
// $数据[] = $行;
//}
//返回$的数据;
返回$查询;
}
}
}
您做出了名称的控制器搜索
即你的类名为搜索
并调用了名称的功能搜索
。如果您使用类名称的任何功能,这将是你的构造。所以建议你改变你的方法名搜索
来别的了。
ajax call is not gt in to the controller when i echo out
===========Ajax auto complete search ========================
<script type="text/javascript" src="js/jquery-1.8.0.min.js"></script>
<script type="text/javascript">
$(function(){
$(".search").keyup(function()
{
var searchid = $(this).val();
//var dataString = 'search='+ searchid;
if(searchid!='')
{
$.ajax({
type: "POST",
url: "<?php echo base_url()."/search/search"?>",
data: {searchid:searchid}
cache: false,
success: function(html)
{
alert(html);
$("#result ").html(html).show();
}
});
}return false;
});
$("#result ").live("click",function(e){
var $clicked = $(e.target);
var $name = $clicked.find('.name').html();
var decoded = $("<div/>").html($name).text();
$('#searchid').val(decoded);
});
$(document).live("click", function(e) {
var $clicked = $(e.target);
if (! $clicked.hasClass("search")){
$("#result").fadeOut();
}
});
$('#searchid').click(function(){
$("#result").fadeIn();
});
});
</script>
=============================Controller=========================
public function search()
{
//$q = mysql_real_escape_string($_POST['search']);
//echo"helloooo".$q;
//die();
$searchid=$this->input->post('searchid');
echo "aaaaaaa".$searchid;
die();
//echo "name".$name;
//die();
$data=$this->search_model->autocomplete($q);
// print_r($data);
}
}
=============================Model=================================
public function autocomplete($q)
{
$this->db->select('uid', 'name');
$this->db->from('tbl_reg');
// $this->db->where('suppress', 0);
$this->db->like('name', $q,'both' );
$this->db->order_by("name", "asc");
$query = $this->db->get();
//echo "query".$query;
//die();
// $query=$this->db->query("select * from tbl_reg where name='$name' ");
/**
$whereCondition = array('name' =>$search);
$this->db->where($whereCondition);
$this->db->from('tbl_reg');
$query = $this->db->get();
return $query->result();
**/
if($query->num_rows()>0)
{
foreach($query->result() as $row)
{
$data[] = $row;
}
//echo "query".$query;
//die();
// foreach($query->result_array() as $row){
// $data[] = $row;
// }
//return $data;
return $query;
}
}
}
You made a controller with name search
i.e your class name is Search
and calling a function with name search
. If you made any function with class name it will be your constructor. So suggest you to change your method name search
to anything else.
这篇关于使用AJAX codeigniter自动搜索的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!