Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

Verschieben wäre nicht nötig gewesen, schliesslich ist das JavaScript.:)

DU kannst ja mal bei shortnews.de nachschauen, die haben das auch so.

Geschrieben

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

Geschrieben

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.

Geschrieben

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

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 erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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