Stephan: Javascript "Objekt erforderlich"

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

  1. hi,

    Der dumme IE sag nun, dass der Fehler in Zeile 18 sei. das ist diese:
    wert=xmlDocument.getElementsByTagName('bezeichnung').item(i).firstChild.data;

    Wenn ich das richtig in Erinnerung habe, möchte der IE, dass du auf das documentElement des in responseXML stehenden XML-Dokumentes zugreifst - und _darauf_ dann die Methode aufrufst.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Mach ich doch!

      3 oder 4 Reihen vorher!

      Oder was meinst du?

      Stephan

      1. hi,

        Mach ich doch!

        3 oder 4 Reihen vorher!

        Nein, machst du nicht.

        Oder was meinst du?

        Das du die Methode nicht auf dem von responseXML gelieferten Objekt, sondern auf dessen documentElement aufrufen sollst.

        Falls es daran nicht liegt - dann debugge.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. Daran lag es nicht,
          ich kann auch leider nicht debuggen, da das Skript ausgeführt wird. der mekert erst das da ein Fehler ist, wenn er das Skript bereits einmal durchlaufen hat.

          Dann führt er es aber kein 2. Mal mehr aus.

          MFG
          Stephan

          1. Hi,

            ich kann auch leider nicht debuggen, da das Skript ausgeführt wird.

            Du kannst nur dann debuggen, _wenn_ das Script ausgeführt wird.

            Dann führt er es aber kein 2. Mal mehr aus.

            Dagegen gibt es eine magische Taste: F5.

            Cheatah

            --
            X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
            X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes