tim: perl und multiple SELECT

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)?

  1. 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!

    1. 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

      1. 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!