我遇到Ajax问题。我完全不喜欢Ajax,对于这样一个愚蠢的问题,我表示歉意。无法获取Ajax作品
我有我想要管理的元素列表(由db加载),即删除,修改它们的名称..;我想使用ajax来更改数据库和列表。
但我希望该页面被修改后,数据库已被修改。我可以在修改数据库之前修改页面,但这不是我想要的。
这是我的代码:
function setXMLHttpRequest() {
var xhr = null;
if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
return xhr;
}
function modifyCat(n,newN){
xhrObj = setXMLHttpRequest();
var url = "modifyCat.php?action=modify&cat="+n+"&newCat="+newN;
xhrObj.open("GET", url, true);
links = document.getElementById("cat").getElementsByTagName("a");
updatePage(links);
xhrObj.send(null);
}
function updatePage(links) {
if (xhrObj.readyState == 4) {
var risp = xhrObj.responseText;
//code that works... if not put inside this if!
}
xhrObj.send(null);
}
ModifyCat.php是
//...
else if($action='modify'){
$n = cleanSimpleString($_GET['cat']);
$nN = cleanSimpleString($_GET['newCat']);
$qry = "UPDATE Categorie Set Nome='$nN' WHERE Nome='$n'";
$check = mysql_query($qry) or $db=0;
}
据我了解if (xhrObj.readyState == 4)
应该想得到我问。相反,如果没有任何反应(在页面中,PHP正确加载)。没有这个如果页面被正确地重新加载,但是db正在工作..
编辑。
我想这样做没有框架,我认为这是一个简单的事情,可以简单地解决。
谢谢。
你能告诉我们'modifyCat.php'脚本吗? (另外,如果你修改状态,你应该使用'POST'而不是'GET') – 2010-07-06 10:33:15
为什么你不使用一些ajax框架?它将帮助您处理浏览器兼容性,并使您的代码变得简单容易 – 2010-07-06 10:36:22