Здравствуйте. Сделал живой поиск, но в yii1 она нарушает все что можно. Как правильнее все это дело структурировать ?
Сейчас я просто закинул JS и обработчик в отдельную папку:
JS код:
$(function() {
//Живой поиск
$('.who').bind("change keyup input click", function() {
if (this.value.length >= 2) {
$.ajax({
type: 'post',
url: "/testing/search.php", //Путь к обработчику
data: { 'referal': this.value },
response: 'text',
success: function(data) {
$(".search_result").html(data).fadeIn(); //Выводим полученые данные в списке
}
})
}
})
$(".search_result").hover(function() {
$(".who").blur(); //Убираем фокус с input
})
//При выборе результата поиска, прячем список и заносим выбранный результат в input
$(".search_result").on("click", "li", function() {
s_user = $(this).text();
$(".who").val(s_user).attr('enabled', 'enabled'); //деактивируем input, если нужно
$(".search_result").fadeOut();
})
})
Код обработчика:
if(!empty($_POST["referal"])){ //Принимаем данные
$referal = trim(strip_tags(stripcslashes(htmlspecialchars($_POST["referal"]))));
$db_referal = $mysqli -> query("SELECT * from city WHERE name LIKE '%$referal%'");
while ($row = $db_referal -> fetch_array()) {
echo '<ul class="results">';
echo "\n<li>".$row["name"]."</li></ul>"; //$row["name"] - имя поля таблицы
}
и в main:
<div class="search_result"></div>
$(function (){
$('.searchCity').click(function(){
var text = $('.who').val();
$('.cityChange').text(text);
});
});
Как будет правильно, по MVC это организовать. Если обработчик закинуть в модель, то можно ли как нибудь отдельно обратиться к методу? Или есть другие решения? Спасибо