2009-01-02 18 views
6

Estoy creando un formulario HTML con algunas opciones de botón de opción. Me gustaría tener una opción como "Otro - especifique" y permitir que el usuario escriba algo en¿Cómo puedo hacer un botón de opción para "Otro - por favor especifique?"

Dos preguntas:.

1) ¿Cómo puedo hacer un "híbrido" tipo de entrada de radio/text?

2) En el back end de PHP, si la entrada tiene el mismo atributo name que las entradas de radio, ¿la entrada del usuario será parte de la misma matriz?

+0

¿Qué tipo de formulario? HTML? –

+0

Sí, lo siento, no especifiqué. –

Respuesta

6

# 1: al campo de radio "otro:", agregue un <input type="text" ...> con visualización de estilo: ninguno y solo visualícelo cuando el usuario seleccione el campo de radio "otro:".

Sin embargo, no estoy del todo seguro de si el # 2 funcionaría. Obtendrá rboption=other desde el botón de opción AND rboption=some%20text desde el campo de texto. Uno generalmente sobrescribirá al otro, pero no está seguro de cuál (léase: depende de la posición en la página, el navegador y la fase de la luna).
Sin duda, hacer que el nombre de campo de texto proceso diferente y sólo cuando rboption == 'other' (como salado dijo)

+0

Cool. Haré que el campo de texto opcional aparezca con Javascript, por lo que para asegurarme de que se degrada correctamente, creo que lo mostraré por defecto y lo esconderé con Javascript a menos que sea necesario. –

8

¿Por qué no añadir un nombre atributo diferente a la entrada y sólo validarlo si el otro botón de radioha sido seleccionado?

8

Así es como lo hice:

<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"> 

Y luego, cuando se procesa el formulario:

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

etc.

Cuestiones relacionadas