Отправка формы со строкой запроса? Key = val уже в атрибуте действия игнорирует эту строку запроса - PullRequest
9 голосов
/ 27 января 2012

Итак, я пытаюсь отправить страницу самому себе, сохраняя текущую строку запроса страницы.

Таким образом, страница равна sb.local/sb/cat.php?brandcode=JM&t=cat_items Я вытащил строку запроса и вставил ее обратно в HTMLФорма для сохранения параметров.Это итоговая форма:

<form id="brand-select" method="get" action="?brandcode=JM&t=cat_items" name="brand-select">
Brand:
<select id="brandcode" style="width:207px" tabindex="3" name="brandcode" required="">
<option value=""></option>
<option class="brand-option" value="AX" data-brandid="110"> Aetrex </option>
<option class="brand-option" value="AL" data-brandid="12"> Alden </option>
<option class="brand-option" value="ETC" data-brandid="11"> Etc </option>
</select>
<input type="submit" value="go">
</form>

Когда я отправляю форму, выбирая раскрывающийся список для Aetrex (значение AX), она переходит на URL:

sb.local/sb/cat.php?brandcode=AX вдругими словами, он вырезает "t = cat_items", который находится в действии.Он также исключает "brandcode = JM", но я почти ожидал бы, что, поскольку они являются дубликатами.

Это не то, что я ожидал, я ожидал, что если в атрибуте действия есть строка запроса, это приведет кдобавьте значения формы к этой строке запроса (например, sb.local/sb/cat.php?brandcode=JM&t=cat_items&brandcode=AX. Вместо этого кажется, что строка запроса полностью заменяется только теми элементами, которые находятся в форме.

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

Редактировать: Обратите внимание, что я могу обойти это, анализируя каждый параметр, а затем вручную помещая каждый параметр в свое скрытое поле, за исключением любых параметров, которые яхочу разрешить изменения, я просто надеялся, что был какой-то более простой способ.
Я тестировал с неконфликтующей строкой запроса, и он был полностью заменен, даже когда не было конфликта (в Firefox),на основании этого кажется, что строки запроса бесполезны в атрибуте действия форм get? Или я что-то упустил?нг.

Ответы [ 2 ]

12 голосов
/ 19 ноября 2013

Я знаю, что это старый вопрос, но решение на самом деле довольно простое (и аккуратное!).

Все, что вам нужно сделать, это отправить строку запроса со скрытыми полями ввода в формате name="key" иvalue="value".

? Brandcode = JM & t = cat_items "переведет" в:

<input type="hidden" name="brandcode" value="JM" />
<input type="hidden" name="t" value="cat_items" />

Полное удаление строки запроса из вашей action.

0 голосов
/ 28 января 2012

Вы можете использовать метод "POST" вместо метода "GET" для отправки формы, если метод не имеет значения.

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