Получить данные из формы и переадресовать на страницу
Доброго времени маги 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 |
firsmember,
:-? <form method="get" action=""> <input type="hidden" name='um_search' value='1'> |
Спасибо, это понял, @laimas разъяснил
|
Атрибут id, это уникальный идентификатор, грубо говоря точечный адрес элемента. Это поиск элемента по его индивидуальному признаку, которым обладает только он. Этот параметр элемента не является обязательным, и если он не используется, то прописывание его всем элементам будет означать бесполезную передачу мусора на клиента.
При передаче формы на сервер, сервер получит ассоциативный массив (в случае если на сервере такой язык как РНР) параметров, в котором ключи будут в том порядке, в котором расположены элементы формы имеющие имена равные этим параметрам. Какой порядок ключей в ассоциативном массиве, для сервера глубоко наплевать, на то она и ассоциация. Если нужно чтобы ключ um_search был в конце и передавал значение 1, то нужно скрытое поле, которое описал рони, поместить в конец формы. Это все что нужно, а если "Это не то, что нужно...", то не понятно что вообще нужно, о чем я и упомянул в другой теме. |
Цитата:
А как реализовать на js все это? Допустим url я смогу сформировать, но как сделать все остальное, особенно после перехода по сформированному url заполнить форму теми же данными... |
Цитата:
Цитата:
|
Я выше объяснил, это своего рода костыль, сайт будет переписываться т.к. не работает должным образом, сейчас нужно обойтись грубо говоря малой кровью, возможно то что я описал выше реализовать на js все же?
|
Цитата:
Каждое частное из общей задачи может влиять на сценарий, поэтому не костылями надо заниматься, а думать от общего к частному, из которого и будет видно как поступить, и где выгоднее это сделать. |
Это форма которая фильтрует объекты... (фильтр в общем) Поля там именно те, что я отписал, при переходе по сформированной ссылке сервер все сделает. Так, что то, что я прошу, это то что мне нужно!
|
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
Тут никто этого делать не будет
|
Потому, если вас не затруднит, вы можете все таки подсказать, как решить задачу?
|
Цитата:
Цитата:
|
Цитата:
Вы издеваетесь над мной да? столько вопрос без какого либо желания помочь, я вас понял.. Большое спасибо. |
Да ити его мать, думать вы будете или нет? Что значит фильтровать объекты и где? Объекты, в прямом смысле этого слова, можно фильтровать только на клиенте. А значит и ничего не надо оправлять на сервер.
Если же на сервере, это запрос к базе по фильтру, то должны быть его значения по умолчанию, которые будут применяться к запросу к базе при любых ошибках запроса от клиента. И похрен что там у вас, ООО, компания или секта, это элементарное правило. И страницу эту формирует сервер, а значит при ошибках с клиента он просто должен отдать форму по умолчанию, иначе с отмеченным выбором клиента. Что рассказывать как это делается серверным языком или все-таки не надо? Вообще ничего не придется отмечать ни JS на клиенте, ни серверу в форме, если этот запрос сделать асинхронным. Ищите что такое Ajax и .... Зе...ли обидчивые при этом думать не желающие. |
Цитата:
|
Цитата:
|
firsmember, вы задали очень хороший вопрос.
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
<form method="get" id="search-form"> <input name="age_min"> <input name="age_max"> <select name="height_min"> <option>150</option> <option>155</option> <option>160</option> <option>165</option> <option>170</option> </select> <select name="height_max"> <option>150</option> <option>155</option> <option>160</option> <option>165</option> <option>170</option> </select> <select name="lang"> <option>RUS</option> <option>USA</option> </select> <select name="country_40"> <option>RUS</option> <option>USA</option> </select> <input name="keyword"> <select name="per_page"> <option>1</option> <option>4</option> <option>8</option> <option>16</option> <option>20</option> <option>40</option> </select> <input type="hidden" name="um_search" value="1"> <button>Искать</button> </form> <script> const searchForm = document.getElementById("search-form"); for(const [key, value] of new URL(location).searchParams) { const control = searchForm.elements.namedItem(key); if(!control) continue; control.value = value; } </script> Цитата:
|
Malleys, бабушке сво
Цитата:
|
Часовой пояс GMT +3, время: 19:30. |