Как я могу отправить форму, сохраняя существующую строку запроса без изменений в URL в laravel - PullRequest
0 голосов
/ 28 мая 2018

У меня есть URL примерно такой: foo?country=usa&state=ny, а в foo у меня есть форма, которая дает мне значения firstname & lastname и еще несколько с кнопкой отправки.

Нокогда я нажимаю submit, это дает foo?firstname=john&lastname=doe И другой запрос, т.е. страна и штат, исчезают, или, другими словами, я их теряю.

Может кто-нибудь сказать, пожалуйста, как я могу их сохранить, даже когда яотправка формы?

Обратите внимание: я не могу использовать никакие скрытые поля, потому что в foo blade есть много форм, а также может быть много запросов, которые могут поступить в foo blade не только из страны иштат, может быть возраст, почтовый индекс и т. д.

Моя форма в foo.blade.php похожа на эту

<form method="get" action ="{{Request::fullUrl()}}">
   <div class="form-group">
      <input type="text" class="form-control" name="firstname" placeholder="first name">
    </div>

    <button type="submit" class="btn btn-green-small">Apply</button>
</form>

    //Another form
 <form method="get" action ="{{Request::fullUrl()}}">

       <div class="form-group">
          <input type="text" class="form-control" name="lastname" placeholder="first name">
           </div>
        <button type="submit" class="btn btn-green-small">Apply</button>
    </form>

1 Ответ

0 голосов
/ 28 мая 2018

Шаг 1 - Вы можете привязать событие onSubmit к своей форме, используя jQuery, там вы можете сериализовать () поля формы, чтобы сгенерировать строку формата www-form-urlencoded, содержащую ваши поля имени и фамилии.

Шаг 2 - Поскольку у вас есть страна, информацию о штате, размещенную на URL, вы можете легко удалить из window.location.href.

Затем вручную объедините новую строку запроса, чтобы добавить URL-адрес вашего запроса.

Пример:

Скажите, что ваша форма имеет id = "myform"

$("#myform").on("submit",function(){
  event.preventDefault(); //prevent submission
  let formData = $(this).serialize(); //outputs firstname=blah&lastname=moreblah

  let fullUrl = window.href.location;
  let queryPart = fullUrl.split("?")[1]; //here you have country=usa&state=ny

  let finalForm = queryPart + "&" formData;  //country=usa&state=ny&firstname=blah

  // submit here using 'finalForm' after your request endpoint
});

Я пропустил проверку пустых / пустых значений для ясности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...