Php 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

我有以下javascript函数,当在独立文件中时,将从页面正确调用这些函数

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;