# Frage zu select mit dropdown



## areuter (24. Apr 2008)

hallo,
bin absolut neu und fange erst mit java an..
ich habe folgendes kleines script:

```
<?php
echo "
<html>
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1252\">
<title>Neue Seite 1</title>
<script language=\"javascript\">
function select(){
selected = document.form.dropdown_parent.value;
switch(selected){

case \"dropdown_parent\":
childx = \"<select size='1' name='child1'><option>Child 1</option><option>Child 2</option><option>Child 3</option></select>\";break;

case \"2\":
childx = \"<select size='1' name='child1'><option>Child 4</option><option>Child 5</option><option>Child 6</option></select>\";break;

case \"3\":
childx = \"<select size='1' name='child1'><option>Child 7</option><option>Child 8</option><option>Child 9</option></select>\";break;
}
document.getElementById(\"dropdown_child\").innerHTML = childx;
}

</script>
</head>
<body>
<form method=\"POST\" action=\"\" name=\"form\">
<select size=\"1\" name=\"dropdown_parent\" onchange=\"select()\">
<option value=\"1\">Parent A</option>
<option value=\"2\">Parent B</option>
<option value=\"3\">Parent C</option>
</select></p>



<div id=\"dropdown_child\">
<select size=\"1\" name=\"child1\">
<option>Child 1</option>
<option>Child 2</option>
<option>Child 3</option>
</select></div></p>


<input type=\"submit\" value=\"Abschicken\" name=\"B1\"><input type=\"reset\" value=\"Zurücksetzen\" name=\"B2\"></p>
</form>

</body>
</html>
";
?>
```

wäre es möglich anstelle von bsplw. case "1": auch case "dropdown_parent " oder "select()" oder. ahnliches zu schreiben, um die drei cases nicht ausschreiben zu müssen..?
danke im voraus!
gruss
arne


----------



## Evil-Devil (25. Apr 2008)

Könntest du vielleicht erläutern was du eigentlich erreichen willst, abgesehen von den cases? Das sieht mir komplizierter aus als es vermutlich sein muss.


----------



## maki (25. Apr 2008)

> bin absolut neu und fange erst mit java an..


Hallo areuter, das ist keine Java, sondern JavaScript mit dem du anfängst


----------



## areuter (25. Apr 2008)

@maki
sorry..musste ich auch erst lernen..wusste wirklich nicht, dass es da einen unterschied gibt.. ;-)

@Evil-Devil
danke für die antwort. vermutlich ist es auch einfacher..wenn man ein experte ist ;-)
ich möchte strings aus einer datenbank holen, wenn dropdown_parent verändert wird.
also in etwa so(?):

```
function select(){  
selected = document.form.dropdown_parent.value;  
switch(selected){  
case "dropdown_parent\":  
childx = \"<select size='1' name='child1'><option>dropdown_parent</option>\";break;  
}  
document.getElementById(\"dropdown_child\").innerHTML = childx;  
}
```
damit wenn man die dropdown_parent verändert, ein wert aus einer db geholt und als "child1" angezeigt wird.
vielen dank!
arne


----------



## Evil-Devil (25. Apr 2008)

Achso, das geht aber so nicht mit JavaScript.
Du musst dafür schon ein PHP Script aufrufen lassen das dir die Daten aus der Datenbank zunächst liest und dann an dein JavaScript zurückschickt. Alternativ könntest du die jeweiligen Daten auch vorladen und dem Benutzer bei der jeweiligen Auswahl anzeigen lassen.

Solange es nur ein paar Einträge sind kannst du das letztere machen. Ansonsten mittels AJAX oder direkt in PHP erledigen und einfach das obere Select Feld nach dem Submit mit dem entsprechend gewählten Optionsfeld vorauswählen.


----------



## areuter (25. Apr 2008)

die sache mit der db habe ich schon gelöst..

```
echo "
case \"$string\":
";
$result = mysql_query("SELECT wert1, wert2 FROM $tblname WHERE wert1=$string");

echo "childx = \"<select size='1' name='name'>";
while($resultx = mysql_fetch_array($result))
{
echo "<option>{$resultx['wert2']}</option>";
}
echo "</select>\";break;";
mysql_close();
```
das funktioniert auch! ..nur wie löse ich das problem mit dem case? er übernimmt aus dem dropdown_parent leider nicht die werte als $string..
danke!


----------



## Evil-Devil (25. Apr 2008)

Dann änder die Abfrage 

Mach aus: selected = document.form.dropdown_parent.value; 
Dies hier: selected = document.form.dropdown_parent.option[document.form.dropdown_parent.selectedIndex].value; 

Dann sollte selected den value Wert der ausgewählten Option beinhalten.


----------



## areuter (25. Apr 2008)

@Evil-Devil
ich bedanke mich wirklich sehr für deine hilfe und möchte dich nicht nerven aber das geht irgendwie auch nicht..

```
selected = document.form.dropdown_parent.option[document.form.dropdown_parent.selectedIndex].value;
```
bist du dir mit dem Index] sicher sieht irgendwie falsch aus..
was würde ich dann mit dem case mache?

```
case selected:
```
?
danke!


----------



## Evil-Devil (25. Apr 2008)

Na im Case musst du dann den Value des Option Feldes abfragen.

case 1
case 2
case 3


----------



## areuter (25. Apr 2008)

genau das versuche ich doch zum umgehen
immer wieder
case 1
case 2
case 3
...
zu schreiben..deshalb doch der ganze aufwand??
ich verstehe bald gar nichts mehr..


----------



## Evil-Devil (25. Apr 2008)

Deswegen hast du doch auch deine Datenbank Abfrage.

Du schickst dein Formular ab und im dropdown_parent wird zb. 2 übergeben. Nun fragst du in der Datenbank ab welche Werte dazu gehören und zeigst diese abschließend in der zweiten Dropdown Box an.


----------

