2013-09-06 3 views
0

Я работаю над веб-сайтом в рамках codeigniter. Я застрял в точке, где мне нужно реализовать функцию автозаполнения. Я много пробовал, но пока не нашел подходящего решения. Вот мои требования.Предложения по поиску

На странице есть страница с несколькими фильтрами поиска. Когда человек попадает на эту страницу, все пользователи веб-сайта отображаются на этой странице. Здесь начинается настоящая игра. Существует фильтр или поле ввода, которое отфильтровывает результаты на основе их имени или имени.

Скажем, у меня есть база данных, в которой у меня 3 пользователя.

Ахмад Наваз Джон Azaar Моника Finlay

Когда человек начинает печатать «Ах» в этом окне поиска Я хочу, чтобы sugesstions начинают появляться показывая его «Ahmad» ... Скажите, пожалуйста, как это сделать что? Я много искал, но я не мог найти правильный ответ в отношении codeignitor. это то, что мой код выглядит на данный момент ...

<input type="text" placeholder="Persons Name" name="individual_name" id="individual_name"> 


<script> 
$(function() { 
$("#individual_name").autocomplete({ 
source: ('autocomplete_individual_name'), 
select: function() { 
testing() 
} 
}); 
}); 
</script> 

только под входом я написал сценарий .... Он идет к моему упомянутому контроллеру. Вот что контроллер выглядит ...

$individual_name = $this->input->post('individual_name'); 
$where = "first_name LIKE '".$individual_name."%' OR last_name LIKE '".$individual_name."%'"; 
$users_array = $this->user_profile_model->findByCondition($where); 

Первая проблема $ individual_name не получает заселена.

Вторая проблема Когда я получу результаты в users_array, что мне делать дальше? Как передать его обратно, чтобы показать предложения?

Третья проблема Используется для вызова функции фильтра onkeyup(). Теперь, когда человек выбирает предложение, как вызвать фильтр?

PS-> Также любезно дайте мне знать, как я могу ответить человеку, который отвечает мне по этому вопросу ... Я использовал знак @ с пользователем, но кажется, что они не получают моего ответа, поэтому они так и не вернулись. ..

Любая помощь будет весьма весьма заметно ...

Спасибо и ждет Ahmad

ответ

0

Попробуйте что-то вроде этого, Вы, возможно, потребуется немного изменить код, чтобы удовлетворить вас,

В части вашего скрипта:

$("#individual_name").autocomplete({ 
    source   : base_url+"controller_name/suggest_names", 
    minLength  : 1, 
    select: function(event, ui) { 
     alert('id :'+ui.item.value) ; 
     //document.location.href = base_url+"controller_name/search?keyword="+ui.item.value; do something or redirect 
    }, 
    success : function(resp){ 
     //alert("auto"); 
    }, 
    error : function(){ 
     alert("Oops, that didn't work. Please try again."); 

    } 
}); 

В контроллере:

function suggest_names(){ 
    print_r ($this->model_name->suggest_names($_REQUEST['term'])); 
} 

В вашей части модели:

function suggest_names($term){ 
    $data = array(); 
    $term = strtolower(addslashes(trim(urldecode($term)))); 
    $temp = $this->db->select('name as label, id as value')->like('name', $term, 'LEFT')->get('table_name')->result_array(); 
    $data = json_encode($temp); 
    //echo "<pre>";print_r($data);echo "</pre>";die; 
    return $data; 
} 

Позвольте мне знать, если вы сталкиваетесь с любой проблемой. Надеюсь, это сработает для вас.

+0

работы отлично ... но у меня есть небольшая проблема. Я использовал функцию keyup для ajax для обновления результатов в соответствии с вводом.Но из тех предложений, которые мы только что разработали, когда вы выбираете что-либо с мышью, оно не обновляет результаты. То есть, это не вызывает функцию, потому что ее вызывают на «key up» ... как ее называть, когда человек нажимает на подсказку с помощью мыши? – Omicans

+0

Вы не обновляете событие 'keyup ', а смотрите, где он предупреждает' alert (' id: '+ ui.item.value); '. Это обновление для выбранного события. –

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