2017-03-19 5 views
1

ein HTML-Formular Gegeben:Erhalten Sie den Text, nicht den Wert, von einem ausgewählten Element mit Perl CGI?

<select name="fruit"> 
<option value="1">Apple</option> 
<option value="2">Banana</option> 
</select> 

Angenommen, der Benutzer die zweite Option wählt und sendet das Formular. In einer Perl-CGI-Anwendung kann ich den ausgewählten Wert 2 abrufen, indem Sie param('fruit') aufrufen. Wie bekomme ich das gewählte Etikett, Banana?

Ich habe seit einer Stunde im Internet gesucht und kann die Antwort nicht finden.

+1

Diese werden nicht Etiketten genannt. Sie sind die Textknoten innerhalb der '

+0

Related: [Get sowohl Name und Wert von Option mit Perl CGI-Parameter] (http://StackOverflow.com/Q/5307958) – ThisSuitIsBlackNot

+0

@ThisSuitIsBlackNot es ist schön, dass ich zu der gleichen Schlussfolgerung wie die Antwort vor sechs Jahren kommen. Sollten wir als Duplikat schließen? Ich bin nicht sicher, weil ich einen alternativen Ansatz gebe, den die alte Antwort nicht hatte. – simbabque

Antwort

3

Das ist nicht möglich. Diese Information wird nicht übertragen. Der Browser fügt fruit=1 nur in die HTTP-Anforderung ein, die er erstellt. Es gibt keine Möglichkeit für Ihr Perl-Programm, diese Informationen zu haben. Es ist einfach nicht da.

Normalerweise würde das Perl-Programm steuern, welcher Wert in einer solchen Situation bedeutet. Sie würden eine passende Einrichtung in Ihrem Programm haben, die weiß, dass 1ist Apple und 2 ist Banana. Sie müssen die value Attribute ändern. Vielleicht zu etwas wie 1|Banana, um die 1 für den Fall zu behalten, dass es woanders gebraucht wird. Die Pipe | ist in diesem Fall willkürlich und ich habe sie nur ausgewählt, weil Ihre Daten anscheinend kein solches Zeichen enthalten.

Wenn Sie die Seite nicht steuern können, könnten Sie auch Ihr Perl-Programm die gleiche Seite holen, die das Formular enthält und es analysieren, um nachzuschlagen, was die 1 bedeutet. Das klingt aber sehr ineffizient. Suchen Sie in HTML::TreeBuilder nach einer Standardmethode zum Analysieren von HTML.

+2

Oder ich würde vorschlagen - wenn die relevanten Informationen der Name der Frucht ist, gibt es nicht wirklich eine Notwendigkeit für den numerischen Wert an erster Stelle. – Sobrique

Verwandte Themen