Zwei 'select-option tag', der 2te soll die Options in Abhängigkeit der 1sten zeigen?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Zwei 'select-option tag', der 2te soll die Options in Abhängigkeit der 1sten zeigen?

    Hallo,

    ich habe zwei 'select-option tag' und möchte so programmieren, dass der zweite 'select' die Optionen in der Abhängigkeit der ausgewählten Option von der ersten 'select' zeigt. Noch ausführlicher: habe eine Tabelle in der Mysql-Datenbank mit den Spalten a1 a2 a3 a4. a4 soll ausgegeben werden, wenn a1 und a2 stimmt. es gibt jeweils ein scrolldown-menü für a1 und a2. Der Auswahlliste für a2 besteht aus über 50 Zeilen, deshalb möchte ich die Auswahlliste in Abhängigkeit des ausgewählten Elements von a1 zeigen.
    Ist es möglich? Habe in Google nichts gefunden.

    danke

  • #2
    Fütter Google mal mit "dependant select" oder "dependant dropdown".
    Zuletzt geändert von onemorenerd; 01.02.2010, 01:21.

    Kommentar


    • #3
      Verkettete Auswahllisten
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Hallo,

        es ist möglich und das auf zwei/drei verschiedenen Wegen:

        a) Du lässt den Benutzer erstmal aus dem einen Auswählen, schickst das Formular ab (z. B. mit onchange) und lässt den Server die zweite Auswahlliste auf Basis der Vorauswahl ausliefern. Dieses Verfahren eignet sich auch für große Mengen an Auswahlmöglichkeiten und beliebig tiefe Entscheidungsbäume.

        b) Du bietest alle Möglichkeiten auf einmal an und gruppierst die Auswahlliste mit optgroup. Das wäre dann das Fallback für Nicht-JS-Browser. Mit JS erfasst du die Auswahlliste dann in einer Datenstruktur, entfernst sie aus dem Dokument und fügst dynamisch gruppierte Listen ein, die aus dieser Datenstruktur in Abhängigkeit der jeweiligen Vorauswahl gefüttert werden. Dieses Verfahren eignet sich nur für eine bestimmte Anzahl an Auswahlmöglichkeiten und ist programmiertechnisch etwas aufwändiger.

        c) Wie a) nur mit AJAX im Hintergrund

        Edit: hab wohl zu viel geschrieben, jetzt waren die anderen schon schneller

        Gruß,

        Amica
        Zuletzt geändert von AmicaNoctis; 01.02.2010, 01:49.
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar


        • #5
          vielen dank für die Tipps,

          wird gleich probieren

          Kommentar


          • #6
            habe mich für onchange entschieden und gegoogelt. Trotz vielen individuellen Beispielen habe ich nicht ganz begriffen, wie onchange funktionert. Habe den onchange in den select eingebaut, wie es unten in meinem Programmteil aussieht. Hat die Variable $_POST[standort] den ausgewählten Wert, während man als nächstes beim select parameter einen Wert auswählen will?
            Mit der Annahme: " $_POST[standort] den ausgewählten Wert, während man als nächstes beim select parameter einen Wert auswählt" habe ich in der select Anfrage für mysql-datenbank die Variable $_POST[standort] eingebaut und meinen Skript neu aufgerufen. Habe total weiße Seite bekommen.
            Code:
            .
            .
            <form action="datenabfrage_ergebnis_2.php" method="POST">
            <input type=hidden name=select value="*">
            <input type=hidden name=from value="messung">
            <input type=hidden name=where value="db">
            <table border=0 cellspacing=0 width=500>
            <tr><td colspan=2><p class="feed">Standort und Parameter auswählen!</p></td></tr>
            <tr>
            <td>
            
            <select name=standort onChange="document.forms['db_2.php'].submit();">
            <option value=0 selected=selected>Standort wählen!</option>
            ENDE;
            
            for($i=1;$i<=$anzahls;$i++)
                {
                print "<option value=\"" . $standorte[$i] . "\">" . $standorte[$i] . "</option>";
                }
            
            print <<<ENDE
            </select>
            </td>
            <td>
            <select name=parameter>
            <option value=0 selected=selected>Parameter wählen!</option>
            ENDE;
            
            
            for($i=1;$i<=$anzahl;$i++)
                {
                print "<option value=\"" . $parameter[$i] . "\">" . $parameter[$i] . "</option>";
                }
            Zuletzt geändert von sharmuur; 01.02.2010, 03:31.

            Kommentar


            • #7
              Bitte benutze die PHP- bzw. Code-Tags dieses Forums, so wie es in unseren Regeln steht!
              Zuletzt geändert von onemorenerd; 01.02.2010, 03:05.

              Kommentar


              • #8
                danke für die Info. Habe geändert. Richtig?

                Kommentar


                • #9
                  Guten Morgen,

                  nein, du hast [code] bzw. benutzt, sollst aber für PHP [php] bzw. benutzen.

                  Dein onchange-Attribut kann irgendwie nicht hinhauen. Du willst das Formular über "db_2.php" ansprechen, dabei hat es weder id-, noch name-Attribut. Da du von einem Formularelement ausgehst, kannst du doch gleich über this.form navigieren.

                  Diese Hidden-Felder oben sehen mir sehr nach Sicherheitsrisiko aus. Wofür brauchst du die überhaupt?

                  Übrigens: ich mag deinen Code-Style nicht. Warum verwendest du
                  PHP-Code:
                  print <<<ENDE
                  ...
                  ENDE; 
                  statt
                  PHP-Code:
                  ?>
                  ...
                  <?php
                  Gruß,

                  Amica
                  [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                  Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                  Super, danke!
                  [/COLOR]

                  Kommentar


                  • #10
                    danke Amica für die Tipps und für die Zeit. Bin gar nicht dazu gekommen mein Skript zu bearbeiten. Gebe zunächst ausführliche Antwort.

                    Grüße
                    shar muur

                    Kommentar


                    • #11
                      Select-Option: nach dem Aktualisieren des Skripts

                      Hallo,

                      ich habe 2 Select-Option, wobei der 2te Select eine Liste abhängig von der ersten Select anzeigt. Praktisch wird nach dem ersten Select das Skript noch aktualisiert und das funktioniert. Aber es entsteht ein kleines Problem, da der ausgäwählte Text in dem 1ten Select verschwindet. Gibt es Möglichkeiten, dass der ausgewählte Text nach dem Aktualisieren stehen bleibt?

                      voraus Danke

                      Kommentar


                      • #12
                        PHP-Code:
                        <select name="bla">
                          <option value="blubb" <?php if ($_POST['bla'] == 'blubb') echo 'selected'?>>
                        </select>
                        So vom Prinzip her.

                        Peter
                        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                        Meine Seite

                        Kommentar


                        • #13
                          Immer noch gleiches Thema -> *zusammenführ*
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar


                          • #14
                            Zitat von Kropff Beitrag anzeigen
                            PHP-Code:
                            <select name="bla">
                              <option value="blubb" <?php if ($_POST['bla'] == 'blubb') echo 'selected'?>>
                            </select>
                            danke für den Tipp,
                            habe gerade probiert, aber es hat nicht funktioniert. Habe die Code unten eingefügt, könntest du vielleicht mir sagen, was hier falsch sein könnte
                            PHP-Code:
                            .
                            .
                            <select name=standort_messwert onChange="this.form.submit()">
                            <option value="$standorte_messwert[$i]" <?php if ($_POST['standort_messwert'] == '$standorte_messwert[$i]') echo 'selected'?>>
                            ENDE;
                            for($i=1;$i<=$anzahl_standort_messwert;$i++)
                                {
                                print "<option value=\"" . $standorte_messwert[$i] . "\">" . $standorte_messwert[$i] . "</option>";
                                }

                            Kommentar


                            • #15
                              Du musst die if-Bedingung in die Schleife(!) einbauen. Und auch ein klein wenig mitdenken.

                              Peter
                              Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                              Meine Seite

                              Kommentar

                              Lädt...
                              X