Я хочу сделать живой поиск с помощью CodeIgniter и JQuery и MySQL , но когда я что-то типа результат не показываетJQuery Live Search в CodeIgniter
вот мой код модели:
<?php
class artikel_model extends CI_Model {
function __construct()
{
// Call the Model constructor
parent::__construct();
}
function cari_artikel($q)
{
$this->db->select('judul,contain');
$this->db->like('judul', $q);
$this->db->or_like('contain', $q);
$query = $this->db->get('artikel');
return $query->result_array();
}
}
?>
и вот мой код управления:
<?php if (! defined('BASEPATH')) exit('No direct script access allowed');
class Welcome extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->model('artikel_model');
}
public function index()
{
if(isset($_GET['q']) && $_GET['q']){
$q = $this->input->get('q');
$this->data['data']=$this->artikel_model->cari_artikel($q);
}
else{
$this->data['data']=array_fill_keys(array('judul', 'contain'), NULL);
}
$this->data['body']='dashboard';
$this->load->view('welcome_message',$this->data);
}
}
/* End of file welcome.php */
/* Location: ./application/controllers/welcome.php */
это мой взгляд код
<?php $this->load->helper('html');?>
<div class="row">
<div class="span12 offset3">
<form class="form-inline" name="form1" method="get" action="">
Search : <input type="text" class=span5 name="q" id="q"/> <label for="mySubmit" class="btn btn-primary"><i class="icon-search icon-white"></i></label> <input id="mySubmit" type="submit" value="Go" class="hidden" />
</form>
</div>
</div>
<?php echo br(15); ?>
<div id="result"></div>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
<script type="text/javascript">
var allow = true;
$(document).ready(function(){
$("#q").keypress(function(e){
if(e.which == '13'){
e.preventDefault();
loadData();
}else if($(this).val().length >= 2){
loadData();
}
});
});
function loadData(){
if(allow){
allow = false;
$("#result").html('loading...');
$.ajax({
url:'http://localhost/helpdesk?q='+escape($("#q").val()),
success: function (data){
$("#result").html(data);
allow = true;
}
});
}
}
</script>
<?php
foreach($data as $row){ ?>
<h3><?php echo $row['judul']; ?></h3>
<?php } ?>
Живой поиск не работает. , когда я печатаю что-то только «загрузка ...» и результат не отображается.
Если я нажму на ввод, результат покажет. но это обычный метод поиска. Не живого поиска.
эхо ваш последний выполненный запрос. консоль в firebug вы можете легко найти проблему .. использовать перед возвратом результата 'echo $ this-> db-> last_query(); ' – Sundar
Ваш вызов ajax вызывает URL-адрес 'ajax-search.php', который является отдельным файлом, а не вашим контроллером. Этот файл существует? Если он действительно существует, можете ли вы отправить это тоже? –
ajax-search.php? Q = ... это плохие манеры использовать , если вы вызываете контроллер, а затем просто передаете имя или имя контроллера. var q = $ ("# q"). Val(); $ .ajax ({ \t \t \t \t типа: "POST", \t \t \t \t DATATYPE: 'JSON', \t \t \t \t URL: " = Site_url ('Welcome')>", \t \t \t \t данные: {д: д}, \t \t \t \t кэша: ложь, \t \t \t \t су ccess: function (data) {alert (data)} –