Как сделать переключатель «Другое — укажите?»
-
03-07-2019 - |
Вопрос
Я создаю HTML-форму с некоторыми опциями переключателей.Я хотел бы иметь один вариант «Другое — укажите», и позволить пользователю что-то вводить.
Два вопроса:
1) Как сделать «гибридный» тип ввода radio/text
?
2) На внутренней стороне PHP, если входные данные имеют то же самое name
атрибут в качестве радиовходов, будет ли ввод пользователя частью того же массива?
Решение
№1:В радиополе «other:» добавьте <input type="text" ...>
со стилем display:none и отображать его только тогда, когда пользователь выбирает радиополе «other:».
Однако я не совсем уверен, сработает ли №2.Вы получите rboption=other
из переключателя И rboption=some%20text
из текстового поля.Один обычно перезаписывает другой, но неизвестно какой (читай:зависит от позиции на странице, браузера и фазы луны).
Чтобы быть уверенным, сделайте имя текстового поля другим и обрабатывайте его только тогда, когда rboption == 'other'
(как сказал Солти)
Другие советы
Почему бы просто не добавить другой имя атрибут входа и проверять его только в том случае, если другой Радиокнопка выбрана?
Вот как я это сделал:
<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']);
}
и т. д.