Peter: Auslesen eines Arrays für Listenausgabe

Hallo Leute!

Ich tüfftler jetzt schon eine Weile an einem im eigentlichen ganz einfachen Problem. Ich habe ein Array, in dem verschiedene ID-Nummern als Einzelfelder abgelegt sind. Jetzt möchte ich das Array ausgeben und zwar als sortierte HTML-Selectbox.

Mein Ansatz sieht so aus:
...
    print qq~
    <select size="1" name="wid">
    <option value=""> </option>
    ~;
    @wid1 = sort(@wid2);
    $laenge = @wid1;
    print "alle wid: @wid1<br>L: $laenge<br>";

for(my $i=0,$i < $laenge,$i++){
    print "<option value='$wid1[$i]'>$wid1[$i]</option>";
    }
    print "</select>";
...

Das Array @wid2 wird weitere oben im Script ausgelesen.

Wenn ich das Script wie oben beschrieben teste, wird in der Selectbox nur ein Teil des Arrays ausgegeben und 3x wiederholt.

Sicher habe ich irgendwo nur einen kleinen Denkfehler, denn solche Sachen habe ich schon öfter programmiert - nur wo?

Vielleicht kann mir jemand von Euch helfen - Danke im vorraus!

Ciao Peter

  1. Hi,

    Sicher habe ich irgendwo nur einen kleinen Denkfehler,

    sagen wir lieber: einen kleinen Tippfehler. Vermutlich war da irgendwo ein <Wortspiel> springender Punkt </Wortspiel>, der sich verdünnisiert hat.

    Aufgrund des akuten Spezialfalls: Was hälst Du hiervon?

    $" = '<option>';
    print "@wid1";

    Cheatah

    1. Hi und Danke für Deine schnelle Hilfe!

      $" = '<option>';
      print "@wid1";

      An sich keine schlechte Idee, jedoch wird dann der Option ja noch kein Value übergeben, sodaß beim Absenden des Formulars die Selectbox dann leer bleibt.

      Daher hatte ich mich für die erste Variante entschieden.

      Gibt es nich noch eine andere Möglichkeit?

      1. Hi,

        $" = '<option>';
        print "@wid1";

        An sich keine schlechte Idee, jedoch wird dann der Option ja noch kein Value übergeben, sodaß beim Absenden des Formulars die Selectbox dann leer bleibt.

        hat ein <option> kein value-Attribut, gilt der Anzeigetext als solcher.

        Cheatah

        1. Hi nochmal!

          hat ein <option> kein value-Attribut, gilt der Anzeigetext als solcher.

          Leider nicht. Ich habe das Formular generieren lassen und es mit einer java-alert-funktion kombiniert. Sobald ein Punkt aus dem Pulldownmenü ausgewählt wird, öffnet sich ein Alert-Fenster in dem das value eigentlich angezeigt werden müßte, jedoch ist das Feld leer. Beim Versuch, daß Formular trotzdem an das Perlscript zurück zu senden, werden ebenfalls aus der Selectbox keine value übergeben.

          Hmm, muß ich mir halt doch noch was anderes überlegen, obwohl die Auswahl über die Selectbox am praktischsten scheint.

  2. use Mosche;

    Mein Ansatz sieht so aus:
    ...
        print qq~
        <select size="1" name="wid">
        <option value=""> </option>
        ~;
        @wid1 = sort(@wid2);
        $laenge = @wid1;
        print "alle wid: @wid1<br>L: $laenge<br>";

    Du gibst hier _mitten_ in einer Selectbox einen Text aus - deinen Browser könnte das zu Darstellungsproblemen reichen... Wie sieht denn der resultierende HTML-Source aus? Ist das Problem Browserseitig oder Script-seitig.

    for(my $i=0,$i < $laenge,$i++){
        print "<option value='$wid1[$i]'>$wid1[$i]</option>";
        }
        print "</select>";
    ...

    Ansonsten habe ich auf die Schnelle keinen Fehler finden können.

    use Tschoe qw(Matti);