Hakan: Ajax document.getElementById

Beitrag lesen

Hallo Leute,

ich dachte, dass das kein großes Problem sein würde, aber ich poste mal die Skripte komplett rein, in der Hoffnung, dass alles etwas klarer wird.

Erst mal die index.html
<html>
<head>
<title>PHP Tests</title>
<script type='text/javascript' src='ajx/ajx.js'></script>
</head>

<body>

<select size='1' onchange='ddm(this.value)' >
<option>Option 1</option>
<option>Option 2</option>
<option>Option 3</option>
<option>Option 4</option>
</select>

<br><br><br>

<select id='friends' size='1' >
</select>

</body>
</html>

Sobald ein Element aus dem ersten Select-Feld gewählt wird, soll die Funktion ddm() aufgerufen werden.

Diese sieht wie folgt aus ajx.js
// globale Instanz von XMLHttpRequest
var xmlHttp = false;

// XMLHttpRequest-Instanz erstellen
// ... für Internet Explorer
try {
    xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
    try {
        xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");
    } catch(e) {
        xmlHttp  = false;
    }
}
// ... für Mozilla, Opera und Safari
if (!xmlHttp  && typeof XMLHttpRequest != 'undefined') {
    xmlHttp = new XMLHttpRequest();
    xmlHttp.overrideMimeType('text/xml');
}

function ddm(grid){

var url = "php/getFriend.php?grid="+grid;

xmlHttp.onreadystatechange = function (){
        if (xmlHttp.readyState == 4) {
         if(xmlHttp.status == 200){

// var friendslist = xmlHttp.responseText;
    var friendslist = "<option>Hallo</option>";
    document.getElementById("friends").innerHTML = friendslist;

}
        }
    };

xmlHttp.open('GET', url, true);
    xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
 xmlHttp.send(null);

}

Und die PHP-Datei getFriend.php sieht einfachheitshalber wie folgt aus:
<?php session_start ();

$grid = $_REQUEST['grid'];

if($grid == 'Option 1'){
 echo "<option>Option 1</option>";
}else if($grid == 'Option 2'){
 echo "<option>Option 2</option>";
}else if($grid == 'Option 3'){
 echo "<option>Option 3</option>";
}else if($grid == 'Option 4'){
 echo "<option>Option 4</option>";
}else{
 echo "<option>wunderbar</option>";
}

?>

Das Problem ist an zwei Stellen, vermute ich:
1. ich kann mit getElementById nicht auf das zweite Select-Feld zugreifen unter IE. Unter FireFox funzen die Skripte einwandfrei
Denn in das zwiete Select-Feld wird nichts eingefügt, wenn ich einfach nur ein einfaches String einfüge (wie weiter oben auskommentiert

2. xmlHttp funzt ebenfalls nicht, denn responseText ist unter IE leer!

Gruß, Hakan