簡體   English   中英

使用Ajax的Codeigniter自動搜索

[英]Codeigniter autosearch using ajax

當我回聲時,ajax調用未轉到控制器
=========== Ajax自動完成搜索========================

<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>

=============================控制器==================== =====

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);
    }  

}

=============================型號==================== =============

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;
    }  
 }
 }

希望這可以幫助。

視圖

<link rel="stylesheet"href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.1/themes/base/minified/jquery-ui.min.css" type="text/css" /> 

  //Also include this script file
 //http://code.jquery.com/ui/1.10.1/jquery-ui.min.js

$(function () {

    //autocomplete
    $(".auto").autocomplete({
       source: "<?php echo base_url(); ?>search/auto_search",
        minLength: 1
    });

});

<input name="" id="" type="text" class="auto"/>

=============控制器============

public function auto_search() {
    if (isset($_GET['term'])) {
        $data = $this->Search_model->autocomplete(urldecode($_GET['term']));
        $json_array = array();
        foreach ($data as $row)
            array_push($json_array, $row->name);
        echo json_encode($json_array);
    }
}

===================型號==================

public function autocomplete($like) {

    $this->db->select('name');
    $this->db->from('tbl_reg');
   // $this->db->where('suppress', 0);
    $this->db->like('name', $like );
    $this->db->order_by("name", "asc");
    $q = $this->db->get();
    if ($q->num_rows() > 0) {
        return $q->result();
    }
}

希望您正在尋找這個,讓我們知道結果。

您使用名稱search創建了一個控制器,即您的類名稱為Search並使用名稱search調用了一個函數。 如果您使用類名創建了任何函數,它將是您的構造函數。 因此建議您將方法名稱search更改為其他名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM