Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Версия 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)
Не в сети
UPD:
Многое поправил, все работает, кроме передачи содержимого view в div.
Если сам пойму как, то выложу решение.
Не в сети
Нужно дописать обработчик,
$.ajax({
type: "GET",
url: '{{route("get-ajax")}}',
data: data,
}).done(
data => {
$('#place_for_view').html(data);
}
).fail(
(jqHXR, testStatus, error) => console.warn(error)
)
;
Не в сети
Спасибо большое!
Не в сети