Задать вопрос

Как правильно реализовать живой поиск в yii1?

Здравствуйте. Сделал живой поиск, но в 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 это организовать. Если обработчик закинуть в модель, то можно ли как нибудь отдельно обратиться к методу? Или есть другие решения? Спасибо
  • Вопрос задан
  • 359 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
А почему в модель? Запрос должен идти в контроллер, там обратиться к модели и ее методам, для получения данных и передать модель во view.
Уже плохо помню yii1, в yii2 я бы весь html и js запихнул в виджет.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы