Dynamisches DropDown-Menü

chefdesigner

Grünschnabel
Ich benötige dringend Hilfe. Ich will meine zweite Select-Box abhängig vom ausgewählten Inhalt der ersten Select-Box füllen. Auf gut Deutsch: Ich möchte in Select-Box 2 alle Modelle des Herstellers aufgelistet haben, den ich in Select-Box 1 ausgewählt habe.

Ich hab mir bei http://www.drweb.de den Code für dynamische DropDown-Menüs geholt, allerdings bring ich's nicht hin diesen so zu verändern, dass die Select-Boxen mit Inhalt aus der Datenbank gefüllt werden.

Hier der Code, vielleicht kann mir jemand sagen, wie ich ihn umschreiben muss.

Code:
<form name="verzeichnis"> 
<select size="1" name="kategorie" onchange="update_auswahl()"> 
<option value="Email" selected>Email</option> 
<option value="Internet">Internet</option> </select> 
<select size="1" name="unterkategorie"> 
<option selected>Software</option> 
<option>Anbieter</option> 
</select></form>

// Dieser Code muss in den <head>-Bereich der Seite
<script language="Javascript">
<!-- Start
function update_auswahl()
{
var kategorieAuswahl = document.forms.verzeichnis.kategorie;
var unterkategorieAuswahl = document.forms.verzeichnis.unterkategorie;
unterkategorieAuswahl.options.length = 0; // DropDown Menü entleeren

if (kategorieAuswahl.options[kategorieAuswahl.selectedIndex].
value == "Email")
{
unterkategorieAuswahl.options[0] = new Option("Software");
unterkategorieAuswahl.options[1] = new Option("Anbieter");
}
else if (kategorieAuswahl.options[kategorieAuswahl.selectedIndex].
value == "Internet")
{
unterkategorieAuswahl.options[0] = new Option("Internetzugang");
unterkategorieAuswahl.options[1] = new Option("Webseiten erstellen");
}
}
// Ende -->
</script>
 
PHP:
<form name="verzeichnis"> 
<select size="1" name="kategorie" onchange="update_auswahl()"> 
<?
$sql = mysql_query("select * from tabelle");
while ($row = mysql_fetch_assoc($sql)) {
echo '<option value="'.$row['inhalt'].'" selected>'.$row['inhalt'].'</option>';
}
?>
<select size="1" name="unterkategorie"> 
<option selected>Software</option> 
<option>Anbieter</option> 
</select></form>

// Dieser Code muss in den <head>-Bereich der Seite
<script language="Javascript">
<!-- Start
function update_auswahl()
{
var kategorieAuswahl = document.forms.verzeichnis.kategorie;
var unterkategorieAuswahl = document.forms.verzeichnis.unterkategorie;
unterkategorieAuswahl.options.length = 0; // DropDown Menü entleeren

<?
$sql = mysql_query("select * from tabelle");
while ($row = mysql_fetch_assoc($sql)) {
  $i= "0";
  echo 'if (kategorieAuswahl.options[kategorieAuswahl.selectedIndex].value == "'.$row['inhalt'].'")
{';
  $insql = mysql_query("select * from tabelle2 where feld = '".$row['inhalt']."'");
  while ($inrow = mysql_fetch_assoc($insql)) {
    echo 'unterkategorieAuswahl.options['.$i.'] = new Option("'.$inrow['inhalt2'].'");';
    $i++;
  }
  echo '}';
}
?>

}
// Ende -->
</script>
 
Zuletzt bearbeitet:
Erst mal besten Dank für deine Antwort. Allerdings scheint noch ein Fehler im Script zu sein, es funktioniert bei mir noch nicht. Ich bin gerade dabei diesen Fehler zu suchen, falls ihn jemand vor mir findet seid doch bitte so nett und postet hier rein.

Danke!
 
Ich kann den Fehler nicht finden, zumal er wohl während des Ausführens des Scripts auftritt. In meiner test.php ist in Zeile 51 nämlich nur ganz normaler html-Code. Muss also irgendwie während des Ausführens passieren.

Code:
<b>Parse error</b>:  parse error, unexpected T_STRING, expecting ',' or ';' in <b>/pfad/zur/page/test.php</b> on line <b>51</b>
 
Ich hab deins kopiert und dann die sql-abfragen angepasst. Ich check gar nicht mehr durch, ich versuch das jetzt schon seit Tagen zu realisieren, funktioniert einfach nicht.
 
Ja in meinem waren auch einige Fehler da ich es in Eile geschrieben habe. Vom Sinn ist es richtig nur solltest du schon noch selbst was dazu beisteuern DEIN Problem zu lösen!
 
Das Problem ist nur, dass ich noch nicht lange in php programmiere. Ich bekomms einfach nicht hin, ich sitz schon einige Stunden über dem Sch....-Script und es funktioniert einfach nicht.
 
Zurück