Laravel по-русски

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

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

#1 30.12.2020 01:06:25

Две формы и два SUBMITа на одной странице.

Каждый 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');

Не в сети

#2 30.12.2020 15:19:25

Re: Две формы и два SUBMITа на одной странице.

Старайся использовать правильные термины. Имя маршрута, а не имя роутера.
Непонятно в чём вопрос. Да, для каждого вида запроса нужен отдельный маршрут (enlgish: route) и обработчик в контроллере. Если данные отправляются с помощью JS то логично сделать два обработчика события submit.

Экономия букв всегда оборачивается кашей вместо логики.


There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

Не в сети

#3 30.12.2020 17:25:35

Re: Две формы и два SUBMITа на одной странице.

Вопрос в общем в следующем... Не получается указать имя маршрута в URL. Только если в ручную прописываю путь. Каким образом можно указать имя маршрута?

Не в сети

#4 30.12.2020 19:59:58

Re: Две формы и два SUBMITа на одной странице.

И еще вопрос. Как мне поступить с валидацией данных. Если я проверяю только одну форму, все Ок. Но если я начинаю проверять обе формы, то происходит конфликт.

Не в сети

#5 30.12.2020 23:33:17

Re: Две формы и два SUBMITа на одной странице.

После AJAX запроса (удаление выбранных записей) нужно обновить страницу.

В контроллере пишу:

return redirect(route('account.exceptions'));

Стандартный способ не подходит. Почему так происходит и как решить эту задачу?

Не в сети

#6 31.12.2020 16:03:42

Re: Две формы и два SUBMITа на одной странице.

Не получается указать имя маршрута в 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.

Не в сети

#7 10.01.2021 00:26:31

Re: Две формы и два SUBMITа на одной странице.

Спасибо вам за исчерпывающие ответы. Теперь по подробнее....
То, что я делаю, это мое хобби и мой домашний проект. Программирование это не мой заработок. От сюда и такие глупые вопросы.
Как вы думаете, стоит ли заморочиться использовать JS как Front-End ради "плавной" работы страниц, если проект планируется порядка 20-30 страниц?
Если да, то какой фреймворк лучше использовать? Что скажете на счет Vue?
Спасибо!!!

Не в сети

#8 Вчера 18:04:36

Re: Две формы и два SUBMITа на одной странице.

Как вы думаете, стоит ли заморочиться использовать JS как Front-End ради "плавной" работы страниц, если проект планируется порядка 20-30 страниц?

Чем меньше JavaScript, тем лучше. В большинстве проектов или, по крайней мере, на большинстве страниц большинства проектов скрипты не нужны. Экономьте свои силы (используйте возможности, уже предоставляемые браузеров) и электроэнергию своих клиентов.

Не в сети

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