Christian: Selectboxeninhaltsänderungen mit onchange

Hallo,

ich würde für ein kleines privates Projekt gerne ein Select-Formular mit 2 Ebenen benutzen. Statt vieler Worte ein kurzer Link:
http://www.nvidia.de/page/drivers.html
So wie dort die 3 Select-Boxen: Links die obergeordnete und rechts davon untergeordnete.
Die Option-Inhalte werden müssen dabei aus der db(mysql) geladen werden.

Dort wird's mit javascript (onchange) realisiert. Die Funktionsweise ist mir aus deren Quellcode aber nicht ersichtlich.

1.) Muss ich vorher alle Option-Inhalte der untergeordneten Select-Box aus der db laden und zwischenspeichern, auch wenn die entsprechende Kategorie (1. Select Box) nicht gewählt wird? Ja, oder?

2.) Weiß jemand eine Adresse, die mir bei dem javascript-Problem weiterhilft?

Grüße aus Münster
Christian

  1. Morgäähn,

    ich würde für ein kleines privates Projekt gerne ein Select-Formular mit 2 Ebenen benutzen. Statt vieler Worte ein kurzer Link:
    http://www.nvidia.de/page/drivers.html
    So wie dort die 3 Select-Boxen: Links die obergeordnete und rechts davon untergeordnete.
    Die Option-Inhalte werden müssen dabei aus der db(mysql) geladen werden.

    1.) Muss ich vorher alle Option-Inhalte der untergeordneten Select-Box aus der db laden und zwischenspeichern, auch wenn die entsprechende Kategorie (1. Select Box) nicht gewählt wird? Ja, oder?

    Nein.
    Du könntest dich hierfür in AJAX einarbeiten, oder dir mal das Parsen von XML-Dateien mit Javascript näher ansehen (die XML-Datei, welche die entsprechenden "Unter-Options" enthält, könntest du dynamisch mit z.B. PHP oder JSP erzeugen und in einem versteckten iFrame laden).

    Oder schau dir mal remote scripting with iframe an.

    Gruß,
    Arthur D.

    --
    >> So long, and thanks for all the fish. <<
  2. Hi,

    1.) Muss ich vorher alle Option-Inhalte der untergeordneten Select-Box aus der db laden und zwischenspeichern

    ja - wenn Du es nicht mit Ajax lösen willst.

    2.) Weiß jemand eine Adresse, die mir bei dem javascript-Problem weiterhilft?

    mit new Option(label, wert) kannst Du eine option erzeugen, die Du mit der gängigen Referenz einfügst:
    ref    =  document.formname.selectname,
    ref[n] =  handler_Deiner_neuen Option

    Ggf must Du zuvor "alte" Optionen löschen, indem Du ihnen den Wert null zuweist.

    Gruesse, Joachim

    --
    Am Ende wird alles gut.
    1. Hallo Joachim,

      danke für deinen Beitrag, hat mir geholfen.

      Schöne Grüße
      Christian