2015-07-23 7 views
2

ajax call не находится в контроллере, когда я выхожу
===========Codeigniter autosearch с использованием 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; 
    } 
} 
} 
+2

Как правило, это хорошая идея, чтобы объяснить вашу проблему и некоторые вещи, которые вы пробовали, а не размещать весь свой код. – Oxcug

ответ

0

Надеюсь, это поможет.

Посмотреть

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

Надеется, что вы ищете это, давайте знать результат.

+0

У меня такая ошибка. В чем проблема с ths? wll вы предоставляете решение для этого ??? – user

+0

У меня такая ошибка. В чем проблема с ths? wll, вы предоставляете решение для этого ??? Номер ошибки: 1054 Неизвестный столбец 'status' in 'where clause' SELECT 'name' FROM (' tbl_reg') WHERE 'status' = 'ACTIVE' AND' name' LIKE '%%' – user

+0

Пожалуйста, используйте отредактированный код и повторите попытку. Вам нужно убедиться, что имя таблицы и имена полей соответствуют вашей базе данных. Дайте мне знать результат. –

0

Вы сделали контроллер с именем search i.e ваше имя класса Search и вызывая функцию с именем search. Если вы создали какую-либо функцию с именем класса, это будет ваш конструктор. Поэтому предложите изменить имя метода search на что-нибудь еще.

Смежные вопросы