我正在做一个小项目,但我被困住了,不知道我做错了什么 我使用Ajax来调用更新MYSQL行的php脚本。
javascript:
function savecust()
{
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("custdetails").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","./ajax/savecust.php?id=" + document.getElementById('id').value,true); //More arguments should still be passed.
xmlhttp.send();
}
如果我删除了document.getElementById('id').value
脚本的工作原理并完成了应该做的事情。 (我得到了PHP的回复,显然是
我将脚本与其他一些脚本一起加载到页面的头部:
<script src="js/custedit.js" type="text/javascript"></script>
这就是我调用脚本的方式:
<input type='button' onclick='savecust()' value='Save' />
非常感谢任何帮助; - )。
谢谢!
所以,我在我的脚本之上运行了这个测试:
var thisid = 'id';//should get info from <input type='text' name='id' />
var T = document.getElementById(thisid);
if (T) {
alert("element exists" + T.value);
} else {
alert("nothing to be found");
}
确实无法找到该元素。这使我指出了正确的方向
<input type='text' name='id' />
由另一个Ajax脚本插入。所以我认为第二个脚本无法找到它。
我该如何解决这个问题?
答案 0 :(得分:1)
如果元素属性不存在,则无法访问它。
也许是一个测试:
var thisid = 'id';//whatever it REALLY is...
var T = document.getElementById(thisid);
if (T) {
alert("element exists" + T.value);
}
答案 1 :(得分:0)
最明显的原因是没有字段的id为id
,或者脚本运行时HTML尚未完全加载。
您应检查浏览器的脚本错误(在Firefox上使用Firebug或在Internet Explorer上按F12)