# mehrere dynamische abhängige Drop-Down-Listen aus Datenbank befüllen



## karl001 (7. Mai 2008)

Hallo,

ich bin hier leicht am verzweiflen. Habe seit kurzem mich mit Javascript und AJAX beschäftigt und komme nicht so recht weiter. Ich möchte mehrere DropDown-Listen dynamisch befüllen. Zum Beispiel wähle ich in der ersten Box die Schulklasse und dann soll in der zweiten Box alle Schulkinder aus dieser Klasse angezeigt werden. Natürlich ohne die Seite komplett neuzuladen. Dazü müsste ja mindestens mal irgendwo der Wert aus der ersten Box im WHERE Statement für die zweite Box übergeben werden. Was sich recht einfach anhört bereitet mir schon seit Tagen Kopfweh. Irgendwie hapert an der PHP/Javacript Überschneidung. Könnte mir jemand da ein kurzes, verständliches, kleines Beispiel geben. Das wäre echt cool!

MfG Karl


----------



## Sven Mintel (8. Mai 2008)

karl001 hat gesagt.:


> Überschneidung. Könnte mir jemand da ein kurzes, verständliches, kleines Beispiel geben. Das wäre echt cool!
> 
> MfG Karl



Obs Kurz, Klein und Verständlich ist, musst du selbst entscheiden , 
aber ein Beispiel findet du hier: http://www.tutorials.de/forum/javascript-ajax/240568-dropdown-feld-aus-datenbank-f-llen.html


----------



## karl001 (9. Mai 2008)

Ja das Beispiel habe ich auch schon gefunden aber es will einfach nicht. Ich habe jediglich die box.php angepasst aber es kommt nur einen Submit Button obwohl der Index auch auf 1 gestellt ist. So sieht Sie jetzt aus:

```
<?php
		//#########
	//box.php

	function make_box($parent)
	{
                             //db daten ausgeblendet
		$db2 = new Database($hostname,$userid,$passwd,$dbname);
		
	  $items=0;
	  $box='';
	  
	  if($parent)
	    {
	    	$query = "SELECT DISTINCT class, lastname, forename FROM students WHERE class='" .$parrent. "'";      
	      $db2->query($query);
	      while($db2->fetch_assoc())
	            {
	              switch($res['class']==$parent)
	                {
	                  case TRUE:
	                        $box='<select name="box['.$res['lastname'].']" onchange="request_data(this) ">
	                              <option value="-1">Auswahl</option>';
	                    continue;
	                  
	                  
	                  case FALSE:
	                        $items=1;
	                        $box.='<option value="'.$res['class'].'">';
	                        $box.=htmlentities($res['lastname']);
	                        $box.='</option>';
	                    continue;
	
	                }
	            }
	            
	            return(($items) 
	              ? $box.'</select>'
	              : '<input type="submit">');
	    }
	    
	    return('');
	  
	}
	
	@print(make_box((int)$_GET['box']));
  
?>
```


----------



## Sven Mintel (9. Mai 2008)

```
$query = "SELECT DISTINCT class, lastname, forename FROM students WHERE class='" .$parrent. "'";
```

Der der Funktion übergebene Parameter heisst $parent und nicht $parrent.


----------

