Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Каждый SUBMIT обрабатывает свою форму. Я так понимаю, что здесь нужно использовать уже JS.
Правильно ли я понимаю, что данные из формы(при помощи обработчика событий) нужно отправлять в контроллер и там уже привычным способом их обрабатывать?
$(document).ready(function () {
$('#exceptionsform').on('submit', function (e) {
e.preventDefault();
$.ajax({
type: 'POST',
cache: false,
url: 'exceptions/destroy',
data: $('#exceptionsform').serialize(),
success: function (data) {
if (data.result) {
$('#senderror').hide();
$('#sendmessage').show();
} else {
$('#senderror').show();
$('#sendmessage').hide();
}
},
error: function () {
$('#senderror').show();
$('#sendmessage').hide();
}
});
});
});
Это обработчик для одной пока еще кнопки. Не получается прописать имя роутера. Вот сам роутер:
Route::post('exceptions/destroy', 'Account\Exceptions_servicesController@destroy')->name('exceptions.destroy')->middleware('auth');
Не в сети
Старайся использовать правильные термины. Имя маршрута, а не имя роутера.
Непонятно в чём вопрос. Да, для каждого вида запроса нужен отдельный маршрут (enlgish: route) и обработчик в контроллере. Если данные отправляются с помощью JS то логично сделать два обработчика события submit.
Экономия букв всегда оборачивается кашей вместо логики.
There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
Не в сети
Вопрос в общем в следующем... Не получается указать имя маршрута в URL. Только если в ручную прописываю путь. Каким образом можно указать имя маршрута?
Не в сети
И еще вопрос. Как мне поступить с валидацией данных. Если я проверяю только одну форму, все Ок. Но если я начинаю проверять обе формы, то происходит конфликт.
Не в сети
После AJAX запроса (удаление выбранных записей) нужно обновить страницу.
В контроллере пишу:
return redirect(route('account.exceptions'));
Стандартный способ не подходит. Почему так происходит и как решить эту задачу?
Не в сети
Не получается указать имя маршрута в URL.
указать имя маршрута в JS ? — это никак не сделать. потому что JS вообще не знает что такое маршруты laravel. максимум ты можешь "разименовать" маршрут в шаблоне и подставить в JS результат, то есть к коде ты будешь видеть имя, но в теле страницы будет присутствовать путь.
some.blade.php
. . .
<script>
. . .
url: '{{ route('exceptions.destroy') }}'
...
</script>
После AJAX запроса (удаление выбранных записей) нужно обновить страницу.
в обработчике ajax-запроса на стороне сервера redirect() не нужен. перегрузку страницы делай в javascript: в success сделай document.location = 'some address'
( на самом деле можно можно было бы обновить не всю страницу, а только список. а то как-то непонятно зачем здесь ajax )
Изменено artoodetoo (31.12.2020 16:05:52)
There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
Не в сети
Спасибо вам за исчерпывающие ответы. Теперь по подробнее....
То, что я делаю, это мое хобби и мой домашний проект. Программирование это не мой заработок. От сюда и такие глупые вопросы.
Как вы думаете, стоит ли заморочиться использовать JS как Front-End ради "плавной" работы страниц, если проект планируется порядка 20-30 страниц?
Если да, то какой фреймворк лучше использовать? Что скажете на счет Vue?
Спасибо!!!
Не в сети
Как вы думаете, стоит ли заморочиться использовать JS как Front-End ради "плавной" работы страниц, если проект планируется порядка 20-30 страниц?
Чем меньше JavaScript, тем лучше. В большинстве проектов или, по крайней мере, на большинстве страниц большинства проектов скрипты не нужны. Экономьте свои силы (используйте возможности, уже предоставляемые браузеров) и электроэнергию своих клиентов.
Не в сети
Страницы 1