Beitrag von Oliver ;-) (500 Beiträge) am Dienstag, 5.April.2005, 13:55.
@perl-Freaks - Aus Feldinhalt ein Drop-Down-Menü erstellen
Hallo Zusammen,
für Perl-Freaks sicher eine der leichtesten Übungen:
Ich möchte aus dem Inhalt des Datenbankfeldes "$Liste" ein Drop-Down-Menü erstellen.
Aus
$Liste="Obst, Gemüse, Fleisch, Backwaren";
soll
<select...>
<option>Obst
<option>Gemüse
<option>Fleisch
<option>Backwaren</option>
</select>
werden.
Kann mir jemand die Lösung nennen? Danke
Grüße
Oliver ;-)
Antworten
Beitrag von hempelr (1976 Beiträge) am Dienstag, 5.April.2005, 15:25.
Re: @perl-Freaks - Aus Feldinhalt ein Drop-Down-Menü erstellen
Antworten
Beitrag von Oliver ;-) (500 Beiträge) am Dienstag, 5.April.2005, 15:48.
Re: @perl-Freaks - Aus Feldinhalt ein Drop-Down-Menü erstellen
Hallo hempelr,
ich find's auch schön, mal wieder hier reinzusehen. Bei größer werdender Community, Verein und Familie fehlt mir irgendwie die Zeit häufiger hier reinzuschauen...
Dein Code mit der Liste funktioniert irgendwie nicht. Ich hab es mal nachgebaut, aber "Obst, Gemüse..." werden nicht in vier Optionen aufgeteilt. Es erscheint einfach (inclusiv Komma) als eine Option.
Das Beispiel bei dem anderen Forumsbeitrag ist doch etwas zu umfangreich für meine "Herausforderung". Ich will ja keine doppelten Einträge herausfiltern.
Grüße
Oliver ;-)
Antworten
Beitrag von markus (1013 Beiträge) am Dienstag, 5.April.2005, 16:08.
Re: @perl-Freaks - Aus Feldinhalt ein Drop-Down-Menü erstellen
hi,
bei mir klappt das ungefähr so:
get "Angebot==*", "datenbank", "erghash";
while(get_next("erghash")) {
$opAngebot{$Angebot}++
}
foreach my $opAngebot(sort keys %opAngebot){
# $a_opAngebot .= $opAngebot eq $fangebot ? "<option selected value=$opAngebot>$opAngebot" : "<option value=$opAngebot>$opAngebot";
$a_opAngebot .= "<option value=$opAngebot>$opAngebot";
}
my $sl = "selected" if $fangebot eq "";
out<<EOF;
<b>Bitte wählen Sie:</b>
<select name="fangebot=">
<option $sl value='*'>Alle
$a_opAngebot
</select>
<input type="submit" value="suchen">
</form>
-------------------------------------
ausgabeseite mit loop:
<loop db=datenbank sort=Angebot Angebot==$fangebot>
gruß
markus
Antworten
Beitrag von hempelr (1976 Beiträge) am Dienstag, 5.April.2005, 15:47.
Fehlerbereinigung Re: @perl-Freaks - Aus Feldinhalt ein Drop-Down-Menü erstellen
sorry, war zu schnell mit den Fingern |)
Liste direkt hart im Template eingeben so:
@Liste = ("Obst", "Gemüse", "Fleisch", "Backwaren");
aus nem Textfeld oder ner "normalen" Textvariablen der von dir vorgegeben Form:
---
$Liste="Obst, Gemüse, Fleisch, Backwaren";
@liste = split /,/, $Liste; # am Komma Trennen und in Array einlesen
---
jetzt ist aber noch ein Leerzeichen an jedem Listenwert ab dem zweiten vorn dran, das entweder gleich bei der Wertzuweisung beachten oder einfach noch in die foreach-Schleife eine regex rein:
---
foreach my $opt(@Liste){
$opt =~ s/^\s//; # Leerzeichen am Anfang des Optionwertes aus der Liste abschneiden
$a_options .= "<option value='$opt'>$opt</option>";
}
---
so, hoffe nun ist kein Schwein mehr drin ;-)
Ruben
Antworten
Beitrag von Oliver ;-) (500 Beiträge) am Donnerstag, 7.April.2005, 11:46.
Re: Fehlerbereinigung Re: @perl-Freaks - Aus Feldinhalt ein Drop-Down-Menü erstellen
Hallo Ruben,
danke, so funktioniert es. Nur ein kleiner Fehler ist drin: @liste einheitlich groß oder klein schreiben.
Grüße
Oliver ;-)
Antworten
Beitrag von hempelr (1976 Beiträge) am Donnerstag, 7.April.2005, 18:06.
Re: Fehlerbereinigung Re: @perl-Freaks - Aus Feldinhalt ein Drop-Down-Menü erste
hihi - war mir ja klar, dass da wieder ein schweinchen drin ist...aber du hast es ja gemerkt, schön dass es dir geholfen hat.
Viele Grüße
Ruben
Antworten