Php javascript没有被调用
我有以下javascript函数,当在独立文件中时,将从页面正确调用这些函数Php javascript没有被调用,php,javascript,ajax,Php,Javascript,Ajax,我有以下javascript函数,当在独立文件中时,将从页面正确调用这些函数 function deleteItem(layer, url) { var xmlHttp=GetXmlHttpObject(); if(xmlHttp==null) { alert("Your browser is not supported?"); } xmlHttp.onreadystatechange = function() { if(xmlHt
function deleteItem(layer, url) {
var xmlHttp=GetXmlHttpObject();
if(xmlHttp==null) {
alert("Your browser is not supported?");
}
xmlHttp.onreadystatechange = function() {
if(xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
if(xmlHttp.responseText == 'result=true') {
var row = document.getElementById(layer);
row.parentNode.removeChild(row);
}
document.getElementById(layer).innerHTML=xmlHttp.responseText;
} else if (xmlHttp.readyState==1 || xmlHttp.readyState=="loading") {
document.getElementById(layer).innerHTML="loading";
}
}
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}
function deleteRec(layer, pk) {
url = "get_records.php?cmd=deleterec&pk="+pk+"&sid="+Math.random();
if (confirm("Confirm Delete?")) {
deleteItem(layer, url);
}
}
function GetXmlHttpObject() {
var xmlHttp=null;
try {
xmlHttp=new XMLHttpRequest();
}
catch (e) {
try {
xmlHttp =new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {
}
}
return xmlHttp;
}
这就是所谓的:
echo '<td><a href="#" onclick="deleteRec(\'article_' . $pk .'\', \'' . $pk . '\')">DELETE</a></td>' . "\n";
JavaScript本身似乎并没有任何问题,所以我想知道是否有什么东西被取消了。即使将deleterec()更改为简单警报,也不会发生任何事情。可能您用于将js文件包含到页面中的html标记不正确 包含脚本的正确方法是
<script type="text/css" src="myfile.js"></script>
以下操作将不起作用
<script type="text/css" src="myfile.js" />
我还建议您使用Firefox的错误控制台,这是一个很好的应用程序,可以让您知道是否存在任何问题。我想知道您的JS代码中是否检测到错误?如果Javascript中有语法错误,浏览器可能不会运行任何语法错误。如果您正在使用Firebug之类的调试器,这将帮助您跟踪错误
或者,尝试一次添加一个函数,它将告诉您哪一个函数正在破坏某些东西。尝试使用FireBug来遵循有效的代码。
另外,如果要显示完整的页面,则可能会有一些问题。首先,在此文本块中:
if(xmlHttp.responseText == 'result=true') {
// Here you remove the appropriate element from the DOM rather than trying to update something within the DOM
var row = document.getElementById(layer);
row.parentNode.removeChild(row);
}
document.getElementById(layer).innerHTML=xmlHttp.responseText;
实际上,您并不需要这一行:
document.getElementById(layer).innerHTML=xmlHttp.responseText;
此外,尝试在函数列表中将deleteRec函数放在deleteItem函数之前
我还建议您在Firefox中测试这一点。这将显示页面上发生的任何Javascript错误 @Josh-请注意,我在显示此删除函数主体的原始帖子中做了相同的更正:-)@Gabriel-这修复了javascript未被调用的问题,但除非我刷新,否则页面不会更新。删除有效,但没有从DOM中删除任何内容。您是否尝试在Firefox中使用Firebug运行此页面?如果是,它显示了什么?@Josh-我建议在将代码粘贴到so之前删除代码中的说明性注释:p当然不是文本/css!停止误导。文本/javascript
document.getElementById(layer).innerHTML=xmlHttp.responseText;