Zum Inhalt springen

Select-Boxen


Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 ^^

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...