Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 04.09.2017 21:14:26

Подставление содержимого различных view с помощью AJAX на страницу

Версия Laravel: 5.4
Версия PHP: 7

Задача, что должно происходить _в целом_, техническое задание:
   Добрый день! Я новичок и по теме laravel + ajax масса всего написано, но они скорее для более продвинутого уровня.
   На странице есть форма с селектором, в зависимости от значения которого, на страницу без перезагрузки подставляется содержимое вида one.blade, two.blade или three.blade.
   Форма:
         

<form>
            {{csrf_field()}}
             <label for="option">Вариант</label>
             <select id="option" name="option">
                <option selected>Выберите</option>
                <option value="1">One</option>
                <option value="2">Two</option>
                <option value="3">Three</option>
              </select>
              <div id="place_for_view">
                МЕСТО ДЛЯ ВСТАВКИ СОДЕРЖИМОГО VIEW 1,2 ИЛИ 3 ИЗ ФУНКЦИИ
              </div>
              <button type="button">Отправить</button>
            </div>
        </form>

   Ajax запрос:

<script>
        $(document).ready(function () {
            $("button").click(function () {
                var data = $("select").val();
                $.ajax({
                    type: "GET",
                    url: '{{route("get-ajax")}}',
                    data: data,
                });
            });
        });
    </script>

     Функция обработки в web.php:

Route::get('/ajax', function(\Illuminate\Http\Request $request){
    $option = $request->data;
    if($option == 1){
        return view('ajax.one');
    } elseif ($option == 2) {
        return view('ajax.two');
    } elseif ($option == 3) {
        return view('ajax.three');
    } else {
        return 'error';
})->name('get-ajax');

Что произошло, текст ошибки, если есть:
1) Во-первых, я не очень уверен, правильно ли я выбрал метод get.
2) Во-вторых, мне возвращается ошибка NotFoundHttpException, наверное это из-за токена, который я не понимаю как передать из {{csrf_field()}}.
3) В-третьих, самое важное, как мне подставить в div содержимое view.
Возможно тут нужно 2 запроса, я не знаю.

Заранее спасибо за помощь!:)

Изменено Kaleopter (04.09.2017 22:48:18)

Не в сети

#2 04.09.2017 22:49:34

Re: Подставление содержимого различных view с помощью AJAX на страницу

UPD:
Многое поправил, все работает, кроме передачи содержимого view в div.

Если сам пойму как, то выложу решение.

Не в сети

#3 05.09.2017 08:21:36

Re: Подставление содержимого различных view с помощью AJAX на страницу

Нужно дописать обработчик,

$.ajax({
                    type: "GET",
                    url: '{{route("get-ajax")}}',
                    data: data,
                }).done(
                    data => {
                        $('#place_for_view').html(data);
                    }
                ).fail(
                    (jqHXR, testStatus, error) => console.warn(error)
                )
;

Не в сети

#4 09.09.2017 12:59:44

Re: Подставление содержимого различных view с помощью AJAX на страницу

Спасибо большое!

Не в сети

Подвал раздела