使用AJAX codeigniter自动搜索 [英] Codeigniter autosearch using ajax

查看:106
本文介绍了使用AJAX codeigniter自动搜索的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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 = $(< D​​IV />中)。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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆