Peter Lustig: Abhängigkeiten von Elementen

Schönen guten Abend an alle...

ich würde gerne etwas umsetzen, von dem ich nicht weiß, ob es überhaupt funktioniert und wenn ja, wie das umzusetzen ist.

Kommen wir also zur Aufgabenstellung:

Es gibt drei Selekt-Boxen und drei Textfelder.
Zunächst sollen alle Elemente bis auf eine Selektbox auf disabled gesetzt sein. Sobald eine Auswahl in der ersten Selektbox gewählt wurde, wird die zweite Selektbox freigeschaltet, wobei der Inhalt der zu wählenden Optionen von der ersten Selektbox abhängt. So auch bei der zweiten Selektbox. Erst wenn bei der zweiten Selektbox die Wahl getroffen wurde, wird die dritte Selektbox freigeschaltet. Die Wahloptionen werden aus einer mysql-Datenbank gezogen.
Sobald die dritte und somit letzt Selektbox bedient wurde, werden die drei Textfelder frei geschaltet, wobei je nach Selektion gewisse Vorgabewerte in den Textfeldern stehen. Diese können jedoch vom User überschrieben bzw. geändert werden.

Bisher habe ich das ganze mit "onchange="this.form.submit();" in den selektboxen realisiert, wobei nach jeder wahl das komplette script neu ausgeführt wurde und somit entsprechen immer die komplette Seite neu aufgebaut wurde.

Es wäre schöner, wenn man das ganze lösen könnte OHNE das script neu zu laden. Von daher denke ich mal dass in diesem Falle Javacript unumgänglich ist.

Die Frage also nun an Euch, kann man allein mit Javascript und PHP bzw. HTML das ganze lösen, oder ist das ganze garnicht möglich?

Wenn es möglich ist, wie würdet Ihr an die Sache heran gehen?

Besten Gruß und vielen Dank für Eure Hilfe

Der Peter

  1. Hi,

    Wenn es möglich ist, wie würdet Ihr an die Sache heran gehen?

    http://aktuell.de.selfhtml.org/artikel/javascript/verkettete-auswahllisten/ beschreibt das prinzipielle Vorgehen.

    Ob man dabei gleich von Anfang an alle Daten an den Client überträgt, oder jeweils nach Auswahl die Daten der nächsten Stufe nachlädt, wäre zu überlegen.

    MfG ChrisB

    --
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
    1. Das sieht doch schonmal in die richtige Richtung aus.

      Das versuche ich erstmal nachzubauen und dann melde ich mich ggf. nochmal

      Besten Dank und Gruß

      Der Peter

    2. mhh....

      bevor ich mich jetzt weiter hinein in die Meterie begebe kurz vorab noch ein Frage:

      Das Beipiel bindet noch zwei weitere "js" mit ein, unteranderem die Datei mit den Auswahlmöglichkeiten (http://aktuell.de.selfhtml.org/artikel/javascript/verkettete-auswahllisten/terminAuswahl.js)

      In diesem Beispiel sind es Festgelegte also statische Auswahlmöglichkeiten.
      Da bei meinem Vorhaben die Auswahlmöglichkeiten aus einer Datenbank gelesen werden müsste ich also das ganze variabel halten. Soweit ich weiß, kann man jedoch nicht in Javascript mit php-Variablen hantieren.

      Kann ich also definitiv meine ausgelesenen Variablen aus der Datenbank als Auswahlmöglichkeiten in der Selektbox einbinden?

      Gruß

      Der Peter

      1. Hi,

        Da bei meinem Vorhaben die Auswahlmöglichkeiten aus einer Datenbank gelesen werden müsste ich also das ganze variabel halten. Soweit ich weiß, kann man jedoch nicht in Javascript mit php-Variablen hantieren.

        JavaScript ist Text; PHP kann Text ausgeben.

        MfG ChrisB

        --
        RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
      2. Hallo,

        Kann ich also definitiv meine ausgelesenen Variablen aus der Datenbank als Auswahlmöglichkeiten in der Selektbox einbinden?

        Wie Chris schon gesagt hat. Man muss sich überlegen, ob man gleich alles läd (= an den Client schickt) oder ob man es nach und nach (beim Auswählen des jeweiligen übergeordneten Selects. Dabei hat er sicher auch berücksichtigt, dass du das aus einer Datenbank laden möchtest, was aber an sich völlig irrelevant ist.

        Man sieht dem Javascript/HTML nicht an, ob die Inhalte mal in einer Datenbank standen oder wo auch immer sie herkommen.

        Ich nehme an, dass du die Informationen beim Klick auf das obere Select jeweils nachladen möchtest. Hierzu bietet sich AJAX an. Dann musst du nämlich lediglich das nachgeladene einbauen und nicht mehr die komplette Seite aufbauen.

        Gruß
        Alex

        1. Hello,

          Ich nehme an, dass du die Informationen beim Klick auf das obere Select jeweils nachladen möchtest. Hierzu bietet sich AJAX an. Dann musst du nämlich lediglich das nachgeladene einbauen und nicht mehr die komplette Seite aufbauen.

          Und was ist mit dem klassischen mehrstufigen Formular?
          Dass heute immer alle gleich nach AJAX schreien, verstehe ich nicht.

          Ich mag das immer noch lieber mit einer Session (die hier gar nicht unbedingt notwendig ist) und mehrstufigen Formularen. Da kann man sich dann wenigstens nicht verlaufen.

          Liebe Grüße aus dem schönen Oberharz

          Tom vom Berg

          --
           ☻_
          /▌
          / \ Nur selber lernen macht schlau
          http://bergpost.annerschbarrich.de
          1. Hi,

            Ich mag das immer noch lieber mit einer Session (die hier gar nicht unbedingt notwendig ist) und mehrstufigen Formularen. Da kann man sich dann wenigstens nicht verlaufen.

            Ich habe den OP so verstanden, dass er genau das nicht möchte. Also er will nicht, dass die Seite neu aufgebaut wird, wie es ja bei sowas der Fall wäre.

            Es kommt meiner Meinung nach ganz auf die Inhalte an. Wenn es irgendwelche kleinen Sachen sind, bin ich als User mit der AJAX (oder einfach nur Javascript) Methode sehr zufrieden. Wenn es große Sachen sind (also wenn bei jedem Klick sehr viele weitere Optionen kommen etc. finde ich mehrere Formularseiten auch besser.

            Gruß
            Alex