ajax/php 中的错误

问题描述 投票:0回答:2

大家好,我正在尝试向我的网站添加一些 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>
,所以一切正常。

javascript
2个回答
2
投票

许多浏览器会拒绝

innerHTML
,从而导致无效标记。

由于您要返回

<option>
标签,请确保您的“Optionen”是
<select>
<optgroup>
标签。


0
投票

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

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

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

您始终可以使用 jQuery 库,它简化了许多 JavaScript 操作,包括 ajax。

© www.soinside.com 2019 - 2024. All rights reserved.