@nevesomostjke

Почему в AJAX ответе не работают JS скрипты?

Всем привет!
Может кто подскажет, у меня такая проблема.
Я делаю страницу с выбором категорий. Я хочу чтобы она была на Ajax.
Замысел такой, есть select с выбором, где есть список всех марок машин. Пользователь выбирает марку и у него появляется новый select со списком моделей, на этой же странице. Т.е. отправляется POST на контроллер и контроллер возвращает представление с другим списком.
В категориях много очень моделей и разом загрузить все категории на страницу не получится.

Все вроде ничего, ответ приходит, но вся моя проблема заключается в том, что я использую JS плагин select 2, и когда пользователю возвращается представление с новым выпадающим списком отключаются JS скрипты (т.е. новый выпадающий список не работает). Я пробовал 100500 способов, у меня ничего не выходит.

Я перепробовал за день 100500 способов, https://qna.habr.com/q/63544 - это мне не помогло.
Может кто подскажет, в какую сторону смотреть, где есть конкретно рабочий образец, такой чтобы в возвращаемом представлении работали JS скрипты? Может, правильно будет реализовать это на JSON? Если на JSON, я в нем очень слаб, дайте образец.
Laravel 8.

/// upd
Решил инициализацией select 2 в ответе ajax
function sendform(form, way, status)  { 
    var msg   = jQuery(form).serialize(); // ID формы
      
        jQuery.ajax({    
        method: 'POST', // Метод отправки
        url: way, // Адрес обработчика
        headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
        beforeSend: function(){
        jQuery(status).html('Отправляю...'); // Промежуточный статус
        },
        data: msg,
        cache: false,  
        success: function(html){  
          $(function(){
                $('select').select2();
              });
        jQuery(status).html(html);  }  });  // Вывод ответа

  }
  • Вопрос задан
  • 175 просмотров
Пригласить эксперта
Ответы на вопрос 1
tmaslov22
@tmaslov22
Backend developer
Сервер должен отдавать ответ в формате json и потом эти данные прокидывай в select2 через js код.
Пример см в доке
Ответ написан
Ваш ответ на вопрос

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

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