Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Получить данные из формы и переадресовать на страницу (https://javascript.ru/forum/dom-window/78836-poluchit-dannye-iz-formy-i-pereadresovat-na-stranicu.html)

firsmember 11.11.2019 09:53

Получить данные из формы и переадресовать на страницу
 
Доброго времени маги JS :thanks: , снова я с нубскими вопросами...
Есть форма которая не работает так как мне нужно, а нужно срочно, потому решено сделать костылем:
<form method="get" action="">
 <input type='text' name='age_min' id='age_min' class='age_min'>
 <input type='text' name='age_max' id='age_max' class='age_max'>
 <select name="height_min" id="height_min" >
   <option value="150">150</option>
   <option value="155">155</option>
   <option value="160">160</option>
   <option value="165">165</option>
   <option value="170">170</option>
</select> 
<select name="height_max" id="height_max" >
   <option value="150">150</option>
   <option value="155">155</option>
   <option value="160">160</option>
   <option value="165">165</option>
   <option value="170">170</option>
</select>
<select name="lang" id="lang" >
   <option value="RUS">RUS</option>
   <option value="USA">USA</option>
</select>
<select name="country_40" id="country_40" >
   <option value="RUS1">RUS</option>
   <option value="USA1">USA</option>
</select>
<input type='text' name='keyword' id='keyword' class='keyword'>
<select name="per_page" id="per_page" >
   <option value="1">1</option>
   <option value="4">4</option>
   <option value="8">8</option>
   <option value="16">16</option>
   <option value="20">20</option>
   <option value="40">40</option>
</select>
<button>Искать</button>
</form>


на выходе получаю такой адрес:
http://site.com/ru/search?age_min=18...16&um_search=1

&um_search=1 - дописывается всегда в конце, так и должно быть, так и нужно...

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

Ума не приложу, как реализовать , help me pleace

рони 11.11.2019 11:06

firsmember,
:-?
<form method="get" action="">
 <input type="hidden" name='um_search' value='1'>

firsmember 11.11.2019 11:19

Спасибо, это понял, @laimas разъяснил

laimas 11.11.2019 12:34

Атрибут id, это уникальный идентификатор, грубо говоря точечный адрес элемента. Это поиск элемента по его индивидуальному признаку, которым обладает только он. Этот параметр элемента не является обязательным, и если он не используется, то прописывание его всем элементам будет означать бесполезную передачу мусора на клиента.

При передаче формы на сервер, сервер получит ассоциативный массив (в случае если на сервере такой язык как РНР) параметров, в котором ключи будут в том порядке, в котором расположены элементы формы имеющие имена равные этим параметрам. Какой порядок ключей в ассоциативном массиве, для сервера глубоко наплевать, на то она и ассоциация.

Если нужно чтобы ключ um_search был в конце и передавал значение 1, то нужно скрытое поле, которое описал рони, поместить в конец формы. Это все что нужно, а если "Это не то, что нужно...", то не понятно что вообще нужно, о чем я и упомянул в другой теме.

firsmember 11.11.2019 12:49

Цитата:

Сообщение от laimas (Сообщение 515356)
Если нужно чтобы ключ um_search был в конце и передавал значение 1, то нужно скрытое поле, которое описал рони, поместить в конец формы. Это все что нужно, а если "Это не то, что нужно...", то не понятно что вообще нужно, о чем я и упомянул в другой теме.

Точно, я не понял его просто, о чем он, все верно, ок, с этим ясно..
А как реализовать на js все это? Допустим url я смогу сформировать, но как сделать все остальное, особенно после перехода по сформированному url заполнить форму теми же данными...

laimas 11.11.2019 13:28

Цитата:

Сообщение от firsmember
Допустим url я смогу сформировать

Зачем его формировать, если это автоматически сделает бразуер при отправлении формы?

Цитата:

Сообщение от firsmember
после перехода по сформированному url заполнить форму теми же данными

Вы форму отправляете серверу или на деревню дедушке? А если серверу и он принимает ее, то может ли он вернуть ее клиенту с его выбором?

firsmember 11.11.2019 13:55

Я выше объяснил, это своего рода костыль, сайт будет переписываться т.к. не работает должным образом, сейчас нужно обойтись грубо говоря малой кровью, возможно то что я описал выше реализовать на js все же?

laimas 11.11.2019 14:07

Цитата:

Сообщение от firsmember
возможно то что я описал выше реализовать на js все же?

Можно, но зачем тогда нужна форма, если она сама по себе? Сервер не просто должен принять форму, но и обязан проверить ее данные. Если при проверки формы будут ошибки, как поступить? Если не будет как поступить?

Каждое частное из общей задачи может влиять на сценарий, поэтому не костылями надо заниматься, а думать от общего к частному, из которого и будет видно как поступить, и где выгоднее это сделать.

firsmember 11.11.2019 14:18

Это форма которая фильтрует объекты... (фильтр в общем) Поля там именно те, что я отписал, при переходе по сформированной ссылке сервер все сделает. Так, что то, что я прошу, это то что мне нужно!

laimas 11.11.2019 14:20

Цитата:

Сообщение от firsmember
Поля там именно те, что я отписал

Уверены, что ваш сервер будет всегда получать "ваши поля"?


Часовой пояс GMT +3, время: 10:10.