Oliver Zelle: Select Multiple auslesen

Hallo,

ich habe folgendes Problem:

Eine Tabelle soll nur bei einem bestimmten Punkt ausgegeben werden welcher in einer Liste ausgewählt werden kann. Die Liste ist vom Typ multiple (es können also mehrere ausgewählt werden). Das Problem ist wenn ich in der Listbox mehrere auswähle wird nicht der richtige SelectedINdex zurückgegeben sondern immer der niedrigste Index.

Habe das so gemacht:

print<<<EOT
<select name="weitere_dienste[]" multiple="multiple" size="8"
EOT;
      if($supervisor_mode) echo" disabled="disabled"";
      $tabidx++;
      print<<<EOT
 tabindex="$tabidx"
onchange="for(i=0;i<this.options.length;i++){if(this.options[i].value=='HAPPYZH_1')s_text_strasse_vfz.value=this.options[this.selectedIndex].value;};">

Diese Tabelle soll halt immer dann erscheinen wenn ein bestimmter Eintrag in der Liste angeklickt wird.

Vielleicht kann mir ja jemand helfen.

Danke euch...

  1. Nachtrag:

    Es geht im groben darum, dass eine Tabelle sichtbar wird wenn ein bestimmter Eintrag in der Liste ausgewählt wird.

  2. echo $begrüßung;

    Das Problem ist wenn ich in der Listbox mehrere auswähle wird nicht der richtige SelectedINdex zurückgegeben sondern immer der niedrigste Index.

    Jede der einzelnen Optionen hat eine Eigenschaft namens selected.

    echo "$verabschiedung $name";

  3. hi,

    Die Liste ist vom Typ multiple (es können also mehrere ausgewählt werden). Das Problem ist wenn ich in der Listbox mehrere auswähle wird nicht der richtige SelectedINdex zurückgegeben sondern immer der niedrigste Index.

    Das ist kein "Problem", sondern logisch.
    selectedIndex ist _eine_ Zahl - wie würdest du in dieser "es wurden die Optionen drei und fünf ausgewählt" ausdrücken wollen? Eben, geht gar nicht.

    Bei einem multiplen Select musst du für die einzelnen Options abfragen, ob diese selected sind.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. selectedIndex ist _eine_ Zahl - wie würdest du in dieser "es wurden die Optionen drei und fünf ausgewählt" ausdrücken wollen?

      Zum Beispiel mit der 20. *g*