Laravel: перенаправление на предыдущую страницу отправки для редактирования формы

#php #laravel #forms #redirect #button

#php #laravel #формы #перенаправление #кнопка

Вопрос:

Когда форма будет отправлена, вы попадаете на сайт, где все входные данные из формы будут отображаться снова, чтобы проверить ее.
Если вы хотите что-либо изменить, есть кнопка «отправить вас обратно» в форму со всеми данными, которые вы уже ввели.

Как мне этого добиться?

Я уже пробовал с:

 <a href="{{ url()->previous() }}"<button type="submit" class="button btn-sm">Bearbeiten</button></a>
  

Я возвращаюсь на сайт формы, но поля ввода пусты (конечно).

Я видел кое-что с redirect()->back()->withInput(); , и мне интересно, могу ли я как-то использовать это для сохранения входных значений без метода контроллера; просто перенаправление обратно на предыдущую страницу с сохранением входных данных. Все еще там.

Это одно из полей ввода:

 <input type="text" name="name" value="{{ old('name') }}">
  

Поскольку я новичок в Laravel, я действительно не знаю, как достичь того, что я пытаюсь сделать, и я пока не нашел ничего действительно полезного.

Комментарии:

1. Возможно, вам захочется взглянуть здесь . Я сильно отстаю от laravel, но это должно стать хорошей отправной точкой.

2. В современных браузерах, если пользователь нажал кнопку возврата браузера, он должен найти старые данные.

3. window.history.back() — На Javascript. <a onClick="window.history.back()"....

Ответ №1:

Я бы просто сделал это по старинке

 <a onClick="window.history.back()" ....</a>
  

Таким образом, история браузера пользователя будет такой же, как если бы он просто нажал кнопку «Назад».

Комментарии:

1. но только представьте, вы заполняете эту форму, а затем попадаете на другой сайт на другой вкладке. И после этого вы возвращаетесь на сайт отправленной формы, который показывает вам ваши входные данные и хотите их изменить. Разве это не отправило бы вас на другую сторону, где вы были на другой вкладке?

2. Нет, это просто как нажать кнопку «Назад» в браузере. История отслеживается для каждой вкладки. И вы не добавляетесь в историю. Перенаправляя обратно, вы, вероятно, добавляете другую страницу в историю. Так что, если пользователь ответит, кто знает, куда они идут. Вероятно, цикл перенаправления. «Где вы должны нажать в ответ 2 раза». На самом деле это более органично, поскольку оно отображается в последней части истории браузера.

3. Я только что попробовал это, но после перезагрузки страницы, на которой отображается форма отправки, это больше не работало. Итак, я думаю, это решение хорошее, но не идеальное

4. Это работает так же, как кнопка «Назад», если вы перезагрузите страницу, кнопка «Назад» сделает то же самое.

Ответ №2:

Извините @ofmiceandmoon, мой предыдущий ответ не был хорошим, потому что я неправильно понял ваш вопрос. Вот правильный ответ:

Допустим, у вас есть представление с именем «форма». В вашей форме поместите:

 <input type="text" name="name" value="{{ request()->get('name') }}">
  

И в вашем контроллере вы хотите перейти к другому представлению с именем «display» и показать вводимое значение:

 $name = $request->input('name');
return view('layouts.display')->with('name', $name);
  

И в вашем отображаемом виде:

 <a href="{{ url()->previous() }}?name={{ $name }}"><button type="submit" class="button btn-sm">Bearbeiten</button></a>
  

Я надеюсь, что это сработает.

Комментарии:

1. Привет, @ofmiceandmoon если этот ответ решил ваш вопрос, пожалуйста, подумайте о том, чтобы принять его, установив флажок.