没有调用Ajax函数

时间:2014-11-28 19:38:20

标签: javascript php jquery ajax

嘿伙计们我遇到了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;];

但它永远不会被调用,因为我试图回应并做一些其他不会起作用的事情。有人可以帮帮我吗?

3 个答案:

答案 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
}