1

嘿家伙即时试图添加到我的网站一些 ajax 代码。我知道 php,但 ajax 对我来说是新的,所以我在 w3schools.com 上使用了一个示例并更改了其中的一部分。当我使用我的脚本时,萤火虫给了我这个错误:TypeError: document.getElementById(...) is null。所以我做错了什么我不知道你能帮我吗?这是我的代码:

function showOptionen(str)
{
if (str=="")
  {
  document.getElementById("Optionen").innerHTML="";
  return;
  }
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
//Here in this line is the error:
    document.getElementById("Optionen").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","bezeichnungs-optionen.php?q="+str,true);
xmlhttp.send();
}

我检查了我bezeichnungs-optionen.php的,结果是:<option value="DELL Notebook">DELL Notebook</option>所以一切正常。

4

2 回答 2

2

许多浏览器会拒绝innerHTML导致无效标记。

由于您要返回一个<option>标签,请确保您的“Optionen”是一个<select><optgroup>标签。

于 2013-01-06T16:12:54.633 回答
0

您可以尝试在页面加载后调用函数 showOptionen(testStr) ,如下所示:

window.onload = function (){
    showOptionen(testStr);
}

似乎在调用该函数时该元素不存在,因此它可能尚未加载。

您总是可以使用 jQuery 库,它简化了许多 javascript 操作,包括 ajax。

于 2013-01-06T16:05:16.727 回答