Hey Leute,
Ich habe bereits gesucht wie eindoofer aber ich finde den Fehler nicht.
Hier mal der Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>ajaxtest</title>
<script language="javascript" type="text/javascript">
var url = "getDetails.php?auswahl="; // The server-side script
var http = getHTTPObject(); // We create the HTTP Object
var isWorking = false;
// *********************************************
function handleHttpResponse() {
if (http.readyState == 4) {
if (http.responseText.indexOf('invalid') == -1) {
var xmlDocument = http.responseXML;
var i=0;
var wert;
do
{
wert=xmlDocument.getElementsByTagName('bezeichnung').item(i).firstChild.data;
// Element in die Liste einfügen!
addSelectOption(document.getElementById("level2"),wert);
i++;
}while(xmlDocument.getElementsByTagName('bezeichnung').item(i-1).firstChild.data!="");
isWorking = false;
}
}
}
// *********************************************
function addSelectOption(selectionElement, text)
{
var option = document.createElement("OPTION");
var Text = document.createTextNode(text);
option.appendChild(Text);
selectionElement.appendChild(option)
}
// *********************************************
function getDataLevel1() {
if (!isWorking && http) {
var auswahl = document.getElementById("level1").value;
http.open("GET", url + escape(auswahl), true);
http.onreadystatechange = handleHttpResponse;
isWorking = true;
http.send(null);
document.getElementById('level2').visibile = false;
}
}
// **********************************************
function getHTTPObject() {
var xmlhttp;
/*@cc_on
@if (@_jscript_version >= 5)
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
@else
xmlhttp = false;
@end @*/
if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
try {
xmlhttp = new XMLHttpRequest();
xmlhttp.overrideMimeType("text/xml");
} catch (e) {
xmlhttp = false;
}
}
return xmlhttp;
}
</script>
</head>
<body>
<form action="post" name="test">
<table>
<tr><td>Level1:</td><td>
<select name="level1" id="level1" size=1 onblur=getDataLevel1()>
<?PHP
function db_connect() {
$database_name = XXX;
$database_username = XXX;
$database_password = XXX;
$result = mysql_pconnect('localhost',$database_username, $database_password);
if (!$result) return false;
if (!mysql_select_db($database_name)) return false;
return $result;
}
// **********************************************
$conn = db_connect();
if ($conn) {
$query = "select bezeichnung from level1";
$result = mysql_query($query,$conn);
while($daten=mysql_fetch_object($result))
{
echo "<option value=".$daten->bezeichnung.">".$daten->bezeichnung."</option>";
}
}
?>
</select>
</td></tr>
<tr><td>Level2:</td><td>
<select name="level2" id=level2 size="1" style="visible:false">
</select>
</td></tr>
</table>
</form>
</body>
</html>
Der dumme IE sag nun, dass der Fehler in Zeile 18 sei. das ist diese:
wert=xmlDocument.getElementsByTagName('bezeichnung').item(i).firstChild.data;
Aber wie gesagt, ich finde den Fehler nicht.
Danke schon einmal für eure Hilfe.
MFG
Stephan