HTML: множественное имя / значение для элемента? - PullRequest
0 голосов
/ 29 марта 2012

Я недавно сталкивался с чем-то вроде:

  • <form method="get" action="/somewebdir/script.php">
       <input type="radio" name="param0" value="foo" />
       <input type="radio" name="param1" value="foo" />
       <input type="radio" name="param2" value="bar" />
       <input type="radio" name="param2" value="bar" checked="checked" />
    </form>
    

Мне было бы любопытно, если бы был способ отправить несколько ключей / значений, если отправляется второй param2, без какой-либо JS.
Чтобы страница выглядела примерно так:

  • http://domain/somewebdir/script.php?param2=bar&param3=foobar

Я изменил значение с "bar" на "bar&amp;param3=foobar", но очевидно, что специальные символы (& и =) будут кодироваться.

Есть идеи? (снова без JS)


Скрытые элементы не будут работать, так как он всегда будет посылать параметр, что отрицательно повлияет на другие вещи, вызываемые обработчиком (script.php)

Ответы [ 5 ]

3 голосов
/ 29 марта 2012

Нет, это не может быть сделано. Вместо этого, сделайте это со стороны сервера (например, ожидайте ввод и, если он поступит, действуйте соответственно). Если это не от пользователя, это не ввод пользователя!

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

<input type="hidden" name="param3" value="value here">
1 голос
/ 29 марта 2012

Обычно вы используете собственный разделитель и анализируете его на сервере:

<input type="radio" name="param2" value="bar|happy|friday" checked="checked" />
1 голос
/ 29 марта 2012

Вы можете передать третий параметр как скрытый элемент:

<input type="hidden" name="param3" value="foobar" />

Затем на стороне сервера проверьте, было ли второе значение «включено» (проверено) перед обработкой третьего параметра.

Если серверный скрипт (script.php) находится вне вашего контроля, и вам необходимо передать третий параметр, если и только если второй параметр задан, вам не повезло без JS.

0 голосов
/ 29 марта 2012

Пока имена тегов различны, они будут передаваться как разные элементы массива $ _GET или $ _POST ...

0 голосов
/ 29 марта 2012

Вам необходимо использовать «скрытый» элемент.Вы можете обработать дополнительный элемент по мере необходимости.

http://www.w3.org/wiki/HTML/Elements/input/hidden

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