2009-01-02 7 views
6

Ich erstelle ein HTML-Formular mit einigen Optionsfeldoptionen. Ich mag eine Option haben, als „Sonstiges - bitte angeben“ und ermöglichen dem Benutzer in etwas gebenWie kann ich einen Radiobutton für "Andere - bitte spezifizieren?"

Zwei Fragen:.

1) Wie kann ich einen „Hybrid“ input type von radio/text machen?

2) Wenn am Eingang das gleiche Attribut name wie die Funkeingänge vorhanden ist, wird die Eingabe des Benutzers Teil desselben Arrays sein?

+0

Welche Art von Formular? HTML? –

+0

Ja - Entschuldigung habe ich nicht angegeben. –

Antwort

6

# 1: Fügen Sie dem Radiofeld "other:" einen mit Stilanzeige: none hinzu und zeigen Sie ihn nur an, wenn der Benutzer das Radiofeld "other:" auswählt.

Allerdings bin ich mir nicht ganz sicher, ob # 2 funktionieren würde. Sie erhalten rboption=other aus dem Optionsfeld UND rboption=some%20text aus dem Textfeld. Der eine wird normalerweise den anderen überschreiben, aber es ist nicht sicher, welcher (das heißt: hängt von der Position in der Seite, dem Browser und der Mondphase ab).
Um sicher zu sein, den Textfeld Name anders und nur Prozess machen, wenn rboption == 'other' (wie gesagt Salty)

+0

Kühl. Ich werde das optionale Textfeld mit Javascript erscheinen lassen, um sicherzustellen, dass es sich leicht verschlechtert. Ich denke, ich werde es standardmäßig anzeigen lassen und es in Javascript verstecken, wenn es nicht benötigt wird. –

8

Warum fügen Sie nicht nur einen anderen Namen Attribut mit dem Eingang und es nur überprüfen, ob die andere Optionsfeld ausgewählt wurde?

8

Hier ist, wie ich es tat:

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

Und dann, wenn Sie verarbeiten die Form:

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

usw.

Verwandte Themen