嘿伙计们我遇到了ajax函数调用的问题。我尝试访问页面" delete.php",但它永远不会被调用。这是我的脚本代码:
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script>
function deleteSpark(sparkID) {
var answer = confirm(sparkID);
//Send the user to the correct page when he presses 'yes / oke'
if(answer==0){
var ajax= $.ajax({ type: "post",
data: {sparkid: sparkID },
url: 'delete.php'
});
ajax.done(function(){
window.location.href = "/sparks.html";
});
ajax.fail(function(){
window.location.href = "/index.html";
})
}
/* OR*/
/* this method after all other code in handler*/
// window.location.href = "/delete.php?sparkid=" + sparkID;
// window.location.href = "/sparks.html";
//Returns false so no events will be executed.
return false;
}
然后用按钮调用它:删除8
在我的php文件&#34; delete.php&#34;我这样做:$ sparkID = $ _POST [&#39; sparkid&#39;];
但它永远不会被调用,因为我试图回应并做一些其他不会起作用的事情。有人可以帮帮我吗?
答案 0 :(得分:1)
我还没有足够的声誉发表评论。你可以检查元素(Firefox / Chrome),然后在AJAX运行时查看网络选项卡吗?这应该显示正在发送的数据,发送到的页面等等......并且应该可以帮助您进行调试。
您可能还想尝试最初使用绝对网址,以确保它到达正确的页面。
谢谢,
安德鲁
答案 1 :(得分:1)
我假设,如果返回false不是为了阻止事件,那么当确认不是“是”时,你希望返回false。所以我在else
语句中移动了返回false。
现在正如@Sergey Yarotskiy指出的那样,你的if
状态是真正的问题,因为你正在等待0;你可以结合(如果你需要其他地方的变量答案),如下所示:if(answer = confirm(sparkID)){
或者如果不需要,可以这样:if(confirm(sparkID)){
。
希望这会对你有所帮助。
这应该解决它:
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script>
function deleteSpark(sparkID) {
//Send the user to the correct page when he presses 'yes / oke'
if(answer = confirm(sparkID)){
var ajax= $.ajax({ type: "post",
data: {sparkid: sparkID },
url: 'delete.php'
});
ajax.done(function(){
window.location.href = "/sparks.html";
});
ajax.fail(function(){
window.location.href = "/index.html";
})
}else{
return false;
}
}
答案 2 :(得分:0)
'confirm'将返回true或false而不是0,因此将条件更改为
if (answer) {
// do staff
}