"Optgroup-Select " Einträge austauschen

WorldsBestKiller

Grünschnabel
Hi

ich weiss das dieses Thema mit dem Select-Werte switchen hier schon des öfteren diskutiert wurde, aber ich hab ne spezielle Frage :

Ich habe 2 select-Listen die aus ner oracle DB befüllt werden und zwar mit zweistufigen werten das ganze sieht im Html dann so ähnlich aus :
Code:
<select name="AuswahlKat" size=13>

<optgroup label="DOKUMENT">
<option label="KATALOGSEITE">KATALOGSEITE
</optgroup>

<optgroup label="LOGO">
<option label="FIRMENLOGO">FIRMENLOGO
</optgroup>

<optgroup label="PRODUKTBILDER">
<option label="GRAFIK">GRAFIK
<option label="ZEICHNUNG">ZEICHNUNG
</optgroup

></select>
(Und davon zwei natürlich)
Das Problem ist nun dass ich die Werte (option label) aus dem einen Select in das andere switchen möchte und umgekehrt und zwar möglichst noch unter die richtige Überschrift (optgroup label).

Mit einem Refresh der Seite ist nicht gedient, weil die SQL-Inserts erst beim betätigen eines Sichern-Knopfes abgeschossen werden sollen. Es geht also nur um die "grafische Umsetzung". Es sollte auch mit einer JavaScript-Funktion gelöst werden.

Ich hoff mal ich drück mich verständlich aus, und jemand kann mir da helfen. Komm selber nicht weiter weil mit der JS-Funktion a la

"window.document.DetailForm.AuswahlKat.selectedIndex" und dann
"window.document.DetailForm.AuswahlKat.options[meinIndex].value"
scheint es bei dieser Art des Selects nicht zu funktionieren.

Thx im voraus und Grüsse
Basti
 
Zuletzt bearbeitet von einem Moderator:
Hallo...

das funktioniert eigentlich... in deinem Beispiel liefert dir "value" allerdings nix zurück, weil die <option>'s keinen "value" besitzen...

sie besitzen ja lediglich das "label"-Attribut, und einen Text, du kannst also mit:
Code:
document.DetailForm.AuswahlKat.options[document.DetailForm.AuswahlKat.selectedIndex].label
bzw. mit
Code:
document.DetailForm.AuswahlKat.options[document.DetailForm.AuswahlKat.selectedIndex].text

an die jeweiligen Werte kommen.

Das der richtigen <optgroup> zuzuordnen..... lässt sich mit der Brechstange sicher auch hinkriegen :)
 
Muchas Gracias funktioniert in der Anzeige wunderbar, die richt ige Optgroup wird automatisch genommen glaub ich. Kann ich das auch irgendwie mit nem Refresh oder so in den HTMLCode reinkriegen

Das Ding ist nämlich dass ich hinterher die Select auslesen und in die DB zurückspeichern muss..
 
Kommt drauf an, wann "refreshed" werden soll...
normalerweise sendet man das Formular mit einem Submit-Button....nur dann werden die Formulardaten verschickt und können in einem Skript weiterverarbeitet...z.B. in eine DB eingetragen werden.
 
OK das ihat sich gelegt, ich machs mit Übergabeparametern, die das ASP erneut aufrufen und dann die Daten zurückschreiben.

Bleibt noch eine Frage: Wie kann ich die optgroup des selektierten Eintrags abfragen ?
 
Wenn der Besucher einen DOM-fähigen Browser hat, dann kannst du das mit
parentNode erledigen.

Ein Beispiel für deinen Select-Tag:
Code:
<select name="AuswahlKat" size=13 onchange="window.alert(this.options[this.selectedIndex].parentNode.label);">
Zeigt beim Ändern der Auswahl den Inhalt vom label-Attribut der übergeordneten
optgroup an.

Ps: Beim nächsten Mal ruhig die Codetags für Code verwenden ;)
 

Neue Beiträge

Zurück