snopsy Geschrieben 30. Juni 2003 Geschrieben 30. Juni 2003 Hi, ich erstelle gerade ein Eingabeformular. Hierbei gibt es 2 Selectboxen. Diese Select-Boxen werden mit Inhalten aus einer Datenbank gefüllt. Der Inhalt in der zweiten Selectbox soll immer je nach Auswahl in der ersten gefüllt werden. In der ersten Select-box werden z.B. meine Gruppen angezeigt und in der zweiten sollen die Untergruppen angezeigt werden. Wie kann ich die select-Anweisung der zweiten select-box aktualisieren, wenn sie der Wert in der ersten geändert hat? hier mein Beispiel: <tr> <td width="20%"> Gruppe: </td> <td width="60%"> <select name='eing_gruppe' size='1'> <? $sql = "select * from gruppe"; $result = mysql_query($sql); $zahl = mysql_num_rows($result); for($i=0; $i<$zahl; $i++) { $zeile = mysql_fetch_array($result); echo "<option value='$zeile[id]'>$zeile[gruppenname]</option>"; } ?> </select> </td> </tr> <tr> <td width="20%"> Untergruppe: </td> <td width="60%"> <select name='eing_untergruppe' size='1'> <? $select = "select * from untergruppe where gruppe='$eing_gruppe'"; $res = mysql_query($select); $num = mysql_num_rows($res); for($a=0; $a<$num; $a++) { $row = mysql_fetch_array($res); echo "<option value='$row[id]'>$row[untergruppenname]</option>"; } ?> </select> </td> </tr> [/PHP] Kann mir jemand bei diesem Problem helfen? Wäre super. Gruß Snopsy
jomama Geschrieben 1. Juli 2003 Geschrieben 1. Juli 2003 Verschieben wäre nicht nötig gewesen, schliesslich ist das JavaScript. DU kannst ja mal bei shortnews.de nachschauen, die haben das auch so.
arok Geschrieben 1. Juli 2003 Geschrieben 1. Juli 2003 mhhh, also mit php kann des nich funktionieren, wenn ich dich richtig verstanden hab. weil php is nur serverseitig. d.h. es ginge höchstens so das der user ein ding auswählt, dann "weiter" klickt und dann die passende untergruppe auswählen kann. was du willst musst du wohl mit java-script machn. aba frag mich net wie ^^
Art Geschrieben 1. Juli 2003 Geschrieben 1. Juli 2003 also ich würde in der ersten select box per onchange eine js funktion aufrufen die dann die seite mit den entsprechenden parametern lädt. <? $sql = "select * from gruppe"; $result = mysql_query($sql); $zahl = mysql_num_rows($result); echo "select name=\"eing_gruppe\" onChange=my_function(this.form.eing_gruppe.options[this.form.eing_gruppe.options.selectedIndex].value)>"; for($i=0; $i<$zahl; $i++) { $zeile = mysql_fetch_array($result); echo "<option value='$zeile[id]'>$zeile[gruppenname]</option>"; } echo "</select>"; ?> [/php] damit wird [php]$zeile[id] an die js-funktion my_function übergeben. wichtig ist natürlich, dass die zuordnung der untergruppen zu den gruppen über die id läuft. das javascript könnte dann so aussehen: echo " <script type=\"text/javascript\">\n" ."function my_function(zeile_id){\n" ."window.location.href=\"deine_seite.php?untergruppen_id=\" + zeile_id + \";" ."}\n" ."</script>"; [/php] dementsprechend mußt du natürlich die 2. db-abfrage anpassen. hoffe es hilft dir.
etreu Geschrieben 2. Juli 2003 Geschrieben 2. Juli 2003 1. Möglichkeit: Du lädst alle Daten in verschiedene JavaScript-Arrays und lässt dir das entsprechende Feld in deine zweite Auswahlliste einschtragen. (Vorteil -> dynamische Genrierung läuft schneller; Nachteil -> laden der Seite dauert länger, da (viele) unnötige Daten aus der Datenbank ausgelesen werden) 2. Möglichkeit Bei "onChange" rufst du eine JavaScript-Funktion auf die den Wert aus der ersten aus der ersten ausliest, ein Formular abschickt und so die Seite erneut aufbaut, diesmal mit der Untergruppeneinträgen. (Vorteil -> schnellerer Seitenaufbau; Nachteil -> jedes Mal wenn eine andere Gruppe gewählt wird, wird die Seite neu aufgerufen / aufgebaut (>TRAFFIC)) 3. Möglichkeit Du baust einen weiten Submit-Button hinter den Gruppen ein. Der Rest läuft ähnlich wie 2. (Vorteil -> JavaScript kann deaktiviert sein; Nachteil -> siehe 2.)
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden