perl und multiple SELECT
tim
- cgi
Ich suche den Perlbefehl, um aus einer HTML-Form die Inhalte aus einem nultiple Select herauszulesen.
Den Befehl für den einfachen Select kenne ich bereits, dich was macht man, wenn der User gleich mehrere Sachen anwählen kann (Select multiple)?
hi!
Ich suche den Perlbefehl, um aus einer HTML-Form die Inhalte aus einem nultiple Select
herauszulesen.
Genau das gleiche steht weiter unten im Forum. Ich kopiere mal meine Nachricht von unten:
=== cut ===
Man könnte das folgenermaßen lösen:
=== cut ===
if ($ENV{'REQUEST_METHOD'} eq "GET")
{
$EnvDaten = $ENV{'QUERY_STRING'};
} else {
read STDIN, $EnvDaten, $ENV{'CONTENT_LENGTH'};
}
$Trennzeichen = ":";
for (split /&/, $EnvDaten)
{
my ($key, $value) = split /=/;
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9]{2})/pack("C", hex($1))/eg;
$value =~ s/</</g;
$value =~ s/>/>/g;
($p{$key}) && ($p{$key} .= "$Trennzeichen$value") ($p{$key} = $value);
}
=== cut ===
Das Trennzeichen sollte man natürlich so wählen, dass es sonst in keinem der Werte vorkommt. In ein Array splitten lässt
sich der Skalar, der alle Werte der Liste enthält, mit dem Befehl split:
@werte = split /$Trennzeichen/, $p{'name_der_auswahlliste'};
=== cut ===
bye, Frank!
hye
Ich suche den Perlbefehl, um aus einer HTML-Form die Inhalte aus einem nultiple Select
herauszulesen.
also ehrlich gesagt blicke ich bei dieser loesung nicht ganz durch - bin noch kein profi. aber soweit ich beim coden mitbekommen habe, werden daten aus Multiple Select fields mit dem Trennzeichen '~~' auseinandergehalten.
abgesehen vom eigentlichen einlesen und aufteilen der daten muesste es reichen die daten vom mult-select-field mit dem befehl
split (/~~/,$in{'Selectfield'});
zu trennen.
cu
hi!
Ich suche den Perlbefehl, um aus einer HTML-Form die Inhalte aus einem nultiple Select
herauszulesen.also ehrlich gesagt blicke ich bei dieser loesung nicht ganz durch - bin noch kein profi. aber soweit ich beim coden mitbekommen habe, werden daten aus Multiple Select fields mit dem Trennzeichen '~~' auseinandergehalten.
abgesehen vom eigentlichen einlesen und aufteilen der daten muesste es reichen die daten vom mult-select-field mit dem befehl
split (/~~/,$in{'Selectfield'});
zu trennen.
Nein. Bei einem Multiselect-Feld sieht die URL bei mehren ausgewählten Optionen folgendermaßen aus:
http://localhost/test/multi.pl?auswahl=001&auswahl=002&auswahl=003
Und genau diese Forum wertet das von mir gepostete Skript aus. Ich hab es getestet. Nirgendwo kommt dabei ein ~~ vor.
bye, Frank!