Hallo
schaut euch mal diesen macromedia technote es ist fuer dynamic dropdown lists fuer ASP & javascript.
http://www.macromedia.com/support/ul...ic_listbox.htm
Ich versuechte es nachzuahmen nuer in PHP & Javascript & MySQL , allerdings gibt es da etwas nicht richtig , koennt ihr mal nachschauen und mir wo die fehler liegt:
<?php require_once('Connections/connLogbook.php'); ?>
<?php
mysql_select_db($database_connLogbook, $connLogbook);
$query_rsType = "SELECT * FROM atype";
$rsType = mysql_query($query_rsType, $connLogbook) or die(mysql_error());
$row_rsType = mysql_fetch_assoc($rsType);
$totalRows_rsType = mysql_num_rows($rsType);
mysql_select_db($database_connLogbook, $connLogbook);
$query_rsAreg = "SELECT * FROM areg";
$rsAreg = mysql_query($query_rsAreg, $connLogbook) or die(mysql_error());
$row_rsAreg = mysql_fetch_assoc($rsAreg);
$totalRows_rsAreg = mysql_num_rows($rsAreg);
?>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<!-- Dynamic Dependent List box Code for *** JavaScript *** Server Model //-->
<script language="JavaScript">
<!--
var arrDynaList = new Array();
var arrDL1 = new Array();
arrDL1[1] = "atype"; // Name of parent list box
arrDL1[2] = "form1"; // Name of form containing parent list box
arrDL1[3] = "areg"; // Name of child list box
arrDL1[4] = "form1"; // Name of form containing child list box
arrDL1[5] = arrDynaList;
<%
var txtDynaListRelation, txtDynaListLabel, txtDynaListValue, oDynaListRS;
txtDynaListRelation = "atypeID" // Name of recordset field relating to parent
txtDynaListLabel = "areg" // Name of recordset field for child Item Label
txtDynaListValue = "aregID" // Name of recordset field for child Value
oDynaListRS = rsAreg // Name of child list box recordset
var varDynaList = -1;
var varMaxWidth = "10";
var varCheckGroup = oDynaListRS.Fields.Item(txtDynaListRelation).Value;
var varCheckLength = 0;
var varMaxLength = 0;
while (!oDynaListRS.EOF){
if (varCheckGroup != oDynaListRS.Fields.Item(txtDynaListRelation).Value) {
varMaxLength = Math.max(varCheckLength, varMaxLength)
varCheckLength = 0;
}
%>
arrDynaList[<%=(varDynaList+1)%>] = "<%=(oDynaListRS.Fields.Item(txtDynaListRelation).Value)%>";
arrDynaList[<%=(varDynaList+2)%>] = "<%=(oDynaListRS.Fields.Item(txtDynaListLabel).Value)%>";
arrDynaList[<%=(varDynaList+3)%>] = "<%=(oDynaListRS.Fields.Item(txtDynaListValue).Value)%>";
<%
if (oDynaListRS.Fields.Item(txtDynaListLabel).Value.length > varMaxWidth.length) {
varMaxWidth = oDynaListRS.Fields.Item(txtDynaListLabel).Value;
}
varCheckLength = varCheckLength + 1;
varDynaList = varDynaList + 3;
oDynaListRS.MoveNext();
}
varMaxLength = Math.max(varCheckLength, varMaxLength)
%>
//-->
</script>
<!-- End of object/array definitions, beginning of generic functions -->
<script language="JavaScript">
<!--
function setDynaList(arrDL){
var oList1 = document.forms[arrDL[2]].elements[arrDL[1]]
var oList2 = document.forms[arrDL[4]].elements[arrDL[3]]
var arrList = arrDL[5]
clearDynaList(oList2);
if (oList1.selectedIndex == -1){
oList1.selectedIndex = 0;
}
populateDynaList(oList2, oList1[oList1.selectedIndex].value, arrList);
return true;
}
function clearDynaList(oList){
for (var i = oList.options.length; i >= 0; i--){
oList.options[i] = null;
}
oList.selectedIndex = -1;
}
function populateDynaList(oList, nIndex, aArray){
for (var i = 0; i < aArray.length; i= i + 3){
if (aArray[i] == nIndex){
oList.options[oList.options.length] = new Option(aArray[i + 1], aArray[i + 2]);
}
}
if (oList.options.length == 0){
oList.options[oList.options.length] = new Option("[none available]",0);
}
oList.selectedIndex = 0;
}
function MM_callJS(jsStr) { //v2.0
return eval(jsStr)
}
//-->
</script>
</head>
<body onLoad="MM_callJS('setDynaList(arrDL1)')">
<form name="form1" method="post" action="">
<select name="atype" id="atype" onChange="MM_callJS('setDynaList(arrDL1)')">
<?php
do {
?>
<option value="<?php echo $row_rsType['atypeID']?>"><?php echo $row_rsType['atype']?></option>
<?php
} while ($row_rsType = mysql_fetch_assoc($rsType));
$rows = mysql_num_rows($rsType);
if($rows > 0) {
mysql_data_seek($rsType, 0);
$row_rsType = mysql_fetch_assoc($rsType);
}
?>
</select>
<select name="areg" id="areg">
</select>
</form>
</body>
</html>
<?php
mysql_free_result($rsType);
mysql_free_result($rsAreg);
?>
danke fuer euhre muehe
