Как я могу сделать переключатель для "Другое - пожалуйста, укажите?" - PullRequest
6 голосов
/ 02 января 2009

Я создаю форму HTML с некоторыми опциями переключателей. Я хотел бы выбрать один вариант «Другое - укажите» и позволить пользователю вводить что-либо.

Два вопроса:

1) Как я могу сделать «гибридный» тип ввода radio/text?

2) Если на бэкэнде PHP вход имеет тот же атрибут name, что и радиовходы, будет ли ввод пользователя частью того же массива?

Ответы [ 3 ]

8 голосов
/ 15 сентября 2009

Вот как я это сделал:

<input type="radio" name="phone" value="313-375-2151">Taylor <br>
<input type="radio" name="phone" value="555-444-1234">OverheadHts <br>
<input type="radio" name="phone" value="555-333-1234">Smith Ctr <br>
<input type="radio" name="phone" value="444-344-1234">Mainsville<br>
<input type="radio" name="phone" value="other">Other:
    <input type="text" name="phone-other" size="14">

А потом при обработке формы:

$phone = mysql_real_escape_string($_POST['phone']);
if ($phone =='other'){
  $phone = mysql_real_escape_string($_POST['phone-other']);
}

и т.д.

8 голосов
/ 02 января 2009

Почему бы просто не добавить другой атрибут name к входу и проверить его только в том случае, если выбран переключатель other ?

6 голосов
/ 02 января 2009

# 1: к радиополе «other:» добавьте <input type="text" ...> со стилем display: none и отображайте его только тогда, когда пользователь выбирает радиополе «other:».

Однако я не совсем уверен, сработает ли №2. Вы получите rboption=other с переключателем И rboption=some%20text из текстового поля. Один обычно перезаписывает другой, но он не уверен, какой (читай: зависит от положения на странице, браузера и фазы луны).
Чтобы быть уверенным, измените имя текстового поля и обрабатывайте его только тогда, когда rboption == 'other' (как сказал Солти)

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