Popup_menu mit Hash füllen
Bjoern
- perl
hi
ich habe folgenden hash:
my %liste = ( 'eins' => 'numero uno',
'zwei' => 'numero due',
'drei' => 'numero tre');
jetzt will ich gerne mit dem cgi-modul folgenden html-string erzeugen:
<select name="zahl">
<option value="eins">numero uno</option>
<option value="zwei">numero due</option>
<option value="drei">numero tre</option>
</select>
kann mir da jemand helfen ? ich habe es einmal versucht mit:
print popup_menu("zahl", %liste, "", %liste);
da steht aber zweimal '%liste'. das kann ja wohl nicht ganz stimmen.
vielleicht könnt ihr mir da weiterhelfen ?
bjoern
hi!
kann mir da jemand helfen ? ich habe es einmal versucht mit:
print popup_menu("zahl", %liste, "", %liste);
da steht aber zweimal '%liste'. das kann ja wohl nicht ganz
stimmen. vielleicht könnt ihr mir da weiterhelfen ?
Also komischerweise funktioniert deine Lösung, obwohl die Hilfe des
CGI-Moduls etwas anderes sagt. Dort steht, dass der zweite Parameter
eine Referenz auf ein Array mit den Werten sein soll. Alle diese
Werte sind bei dir die Schlüssel des Hashs %liste, an die du mit
dem Kommando "keys %liste;" kommst. Daraus musst du dann nur noch
eine Referenz auf eine Liste machen. In diesem Fall machen wir mal
eine anonyme Referenz daraus:
popup_menu("zahl", [keys %liste], "");
Weiter steht in der Hilfe, dass man für die angegebenen Werte der
Select-Box auch jeweils einen Namen angeben kann, der dann in der
Dropdown-Liste angezeigt wird. Dazu muss man noch als weiteren
Parameter die Referenz auf einen Hash übergeben, der für jeden
Wert einen Namen erhält. Das ist genau das, was du in deinem Hash
%liste gemacht hast. Der korrekte Aufruf wäre dann also:
popup_menu("zahl", [keys %liste], "", %liste);
bye, Frank!
popup_menu("zahl", [keys %liste], "", %liste);
bye, Frank!
hi.
danke. ist ja stark. so kommt das ja wirklich, wie es soll.
bjoern