2015-06-21 2 views
0

Прежде всего, да, я знаю, что есть другие вопросы, подобные этому уже, и я пробовал решения там, но не повезло.jquery autocomplete не работает с codeigniter

Я использую автозаполнение PHP, codeigniter и jquery. Я следую this учебник, и он не работает.

Моя модель:

class Tags_model extends Model{ 
    function get_tag($q){ 
    $db = mysqli_connect("localhost","root","","km_portal") or die("Could not connect"); 
    $query = mysqli_query($db,"SELECT * FROM resource WHERE tags LIKE '%".$q."%'"); 

    if(mysqli_num_rows($query) > 0){ 
     while($row = mysqli_fetch_array($query)){   
      $new_row['label']= $row['tags']; 
      $new_row['value']= $row['tags']; 
      $row_set[] = $new_row; //build an array 
     } 
     echo json_encode($row_set); //format the array into json  
    }}} 

Мое мнение:

<?php echo form_open('search/do_search');?> 
    <input type="text" name="search" id="tags" placeholder="Search tags"/> 
    <input type="submit" value=">>" /> 
    <span id="noMatches"></span> 
</form> 

с JavaScript:

<script type="text/javascript"> 
$(jQuery(document).ready(function(){ 
    $("#tags").autocomplete({ 
     source: "search/get_tags", 
     response: function(event,ui){ 
      if (ui.content.length === 0) { 
       $("#noMatches").html("No matches"); 
      } else { 
       $("#noMatches").empty(); 
      } 
     } 
    }); 
})); 

И затем, наконец, мой контроллер:

function get_tags(){ 
    $this->load->model('tags_model'); 

    if(isset($_GET['term'])){ 
     $q = strtolower($_GET['term']); 
     $this->tags_model->get_tag($q); 
    }} 

Проверка консоли Chrome, когда я пытаюсь ее запустить, похоже, что параметр «термин» присоединяется к URL-адресу, создав его: localhost/km/index.php/search/get_tags?term=a. Я получаю ошибку 404 (не найден)

Любая помощь будет действительно оценена. Я застрял с этим больше месяца (это первый раз, когда я использую codeigniter, кстати).

Спасибо!

EDIT: используя следующие JS:

<link rel="stylesheet" type="text/css" href="<?php echo base_url();?>jquery-ui-1.11.4.custom\jquery-ui.css"/> 
<script type="text/javascript" src="<?php echo base_url();?>jquery-ui-1.11.4.custom\external\jquery\jquery.js"></script> 
<script type="text/javascript" src="<?php echo base_url();?>jquery-ui-1.11.4.custom\jquery-ui.js"></script> 
+0

Добавили ли вы 'jquery.ui.js'? – AnkiiG

+0

Привет, да, я уже связался с ним. Спасибо, что напомнил мне об этом. –

ответ

0

Вы испытываете проблемы с маршрутизацией я отгадать ваш URL для поиска

http://domain.com/search/get_tags?term=blah

Я вижу проблему здесь:

<?php echo form_open('search/do_search');?> 
    <input type="text" name="search" id="tags" placeholder="Search tags"/> 
    <input type="submit" value=">>" /> 
    <span id="noMatches"></span> 
</form> 

Путь к форме должен быть следующим: /search/do_search

Чтобы сделать абсолютный путь в противном случае вы получаете относительный путь

EDIT: Только для помогать вам, когда я использовал автозаполнения я использовал, чтобы проверить в гугле, если URL, в вашем случае http://domain.com/search/get_tags?term=blah, является получение хорошо json правильно, чтобы отлаживать проблемы

+0

привет! спасибо за предложение, но я сделал это, и он ничего не изменил. все еще не может заставить автозаполнение работать :( –

+0

Можете ли вы показать мне, какое сообщение об ошибке вы получаете в браузере? – Balder

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