PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 2 DropDown's aus Array fuellen im gleichen Formular


harunaga
24.09.2007, 02:43:39
Hallo Leute,

habe folgendes Problem.

Ich habe einen Menu_Array.

Jetzt moechte ich ein Formular erstellen, wo ich in Dropdowns das Menu nacheinander(vorerst Obermenu und dann Untermenu) auswaehlen kann.

Ich habe einen Dropdown mit Oberkategorien, je nach AUswahl der Oberkategorie soll das 2 Dropdown die Unterkatgorien beinhalten.

Hab schon einen Script angefangen aber es laeuft irgenwie nicht. Die Daten sind zwar in den Dropdowns aber

1 Im Ersten Dropdown bleibt es nicht selected (einmal ging es, jetzt nicht mehr)
2 Im Zweiten Dropdown wird nicht nach der AUswahl des 1. Dropdowns gefiltert .

hier mein Script:

for ($a=0;$a < count($menue_array);$a++){
$menue_w[$a] = $menue_array[$a][0]; # menue als wort
$menue_z[$a] = $menue_array[$a][1]; # menue als zahl
$menue_k[$a] = $menue_array[$a][2]; # menue als kategorie - Ober- oder Unterkategorie

echo $menue_w[$a];
//echo $menue_z[$a];
//echo $menue_k[$a];
}
?>

<form method="POST" action="dropdown.php">
<select size="1" name="test" onchange="self.document.forms[0].submit()">
<option selected value="Bitte auswaehlen">Bitte auswaehlen</option>
<?
for ($a=0;$a < count($menue_w);$a++){
if ($menue_k[$a]==0){
echo "<option value='$menue_w[$a]' selected>$menue_w[$a]</option>";
}
}

?>
</select>

<select size="1" name="test1">
<option selected value="Bitte waehlen">Bitte auswaehlen</option>
<?
for ($a=0;$a < count($menue_w);$a++){
if ($menue_k[$a]!=0){
echo "<option selected value=$menue_w[$a]>$menue_w[$a]</option>n";
}
}
?>
</select>
</form>


kurzer Info:

Ober und Unterkategorien sind alle in $menue_w wobei die Unterkategorie durch eine Zahl in $menue_k unterschieden wird.

doppelklick
24.09.2007, 03:01:26
Wie soll das funktionieren?
php ist kein Java-Script. Wenn deine Seite aufgebaut ist kannst du soviel in deinen DropDown Menüs ändern wie du willst. Solange du die Seite nicht neu aufrufst und die Variablen auswertest tut sich nichts.

harunaga
24.09.2007, 16:14:04
Also so wie ich das jetzt habe, funktioniert das neu Laden !! Die Seite wird neu geladen wenn ich im Dropdown etwas auswaehle.

Hab auch nicht mehr CODE als oben angegeben.

Noch eine Frage, vielleicht ist es die Frage zur Loesung, wie uebergebe ich vom Select Box den Wert weiter. Die Box hat ja einen Namen, in dem Fall "test". jetzt will ich eine 'where-Bedingung' erstellen wo ich sage, nur die Unterkategorien anzeigen, wo im "test" die Hauptkategorie gewaehlt wurde.

gruesse

Raketenmann
25.09.2007, 11:27:49
Noch eine Frage, vielleicht ist es die Frage zur Loesung, wie uebergebe ich vom Select Box den Wert weiter.


So isses...

Nach dem Absenden findest du den gewählten Wert der Auswahlliste in $_POST["test"].

Du kannst mit Hilfe von if-Bedingungen, verschiedene Zweige bilden.



In deinem Quelltext ist ein Fehler: Das Attribut 'selected' darf immer nur einem Element der Auswahlliste zugeordnet sein.

harunaga
25.09.2007, 21:46:45
Hi,

hast du vielleicht eine Idee, wie ich das Select auf ein Element setzen koennte ?

Da das eine Schleife ist, weiss ich nicht, wie gerade auf das ausgewaehlte Element das Select setzen soll. denke da muss eine Bedingung rein oder aehnliches aber ich habe keine Idee wie ?

Raketenmann
26.09.2007, 13:09:04
hast du vielleicht eine Idee, wie ich das Select auf ein Element setzen koennte ?


Ja - mit dem Attribut 'selected'...
...das war schon richtig, aber es darf nur einem Element zugewiesen sein, dies war dein Fehler.


Da das eine Schleife ist, weiss ich nicht, wie gerade auf das ausgewaehlte Element das Select setzen soll. denke da muss eine Bedingung rein oder aehnliches aber ich habe keine Idee wie ?

Ganz genau... über eine Bedingung


<select size="1" name="test" onchange="self.document.forms[0].submit()">
<option selected>Bitte auswaehlen</option>
<?
for ($a=0;$a < count($menue_w);$a++)
{
if ($menue_w[$a]==$_POST["test"])
{
echo "<option value='$menue_w[$a]' selected>$menue_w[$a]</option>";
}
else
{
echo "<option value='$menue_w[$a]'>$menue_w[$a]</option>";
}
}
?>
</select>