Php Ajax并不总是被调用

Php Ajax并不总是被调用,php,jquery,ajax,Php,Jquery,Ajax,好的,我有一个按钮“向上”,当按下该按钮时,从8开始倒计时,当它达到0时,会发出一个对update.php的ajax调用,从而更新一个sql表。update.php正在运行 <input type='button' id='countdw' value='Wait 8s' class='btn btn-primary disabled'> 这是密码 <script> var secsLeft = 8;

好的,我有一个按钮“向上”,当按下该按钮时,从8开始倒计时,当它达到0时,会发出一个对update.php的ajax调用,从而更新一个sql表。update.php正在运行

 <input type='button' id='countdw' value='Wait 8s'  class='btn btn-primary disabled'>
这是密码

<script>
                var secsLeft = 8;
                setInterval(function(){
                    secsLeft--;
                    if(secsLeft > 0){
                        $('#countdw').val('Wait ' + secsLeft + 's');
                    } else if(secsLeft == 0){
                        $('#countdw').removeClass('disabled');
                        $('#countdw').val('UP');
                        $('#countdw').attr("onclick","myfunction()");

                    }
                }, 1000);        
            </script>

            <script>
                count=0;
                function myfunction(){
                    if(mycount!=0 && mycount%25==0){

                    }else{
                            var secsLeft = 8;
                            setInterval(function(){
                                secsLeft--;
                                if(secsLeft > 0){
                                    $('#countdw').addClass('disabled');
                                    $('#countdw').val('Wait ' + secsLeft + 's');
                                } else if(secsLeft == 0){
                                    $('#countdw').removeClass('disabled');
                                    $('#countdw').val('UP');
                                    $('#countdw').attr("onclick","myfunction()");

                                    $.ajax({
                                url: "update.php", 
                                data:{'user':'<?php echo $subid ?>','data':'<?php echo $key ?>'},
                                success: function(result){

                                }
                            });

                                }
                            }, 1000);

                    }
                    up();
                }
            </script>

var secsLeft=8;
setInterval(函数(){
secsLeft--;
如果(secsLeft>0){
$('#countdw').val('Wait'+secsLeft+'s');
}else if(secsLeft==0){
$('#countdw').removeClass('disabled');
$('#countdw').val('UP');
$('#countdw').attr(“onclick”,“myfunction()”);
}
}, 1000);        
计数=0;
函数myfunction(){
如果(mycount!=0&&mycount%25==0){
}否则{
var secsLeft=8;
setInterval(函数(){
secsLeft--;
如果(secsLeft>0){
$('#countdw').addClass('disabled');
$('#countdw').val('Wait'+secsLeft+'s');
}else if(secsLeft==0){
$('#countdw').removeClass('disabled');
$('#countdw').val('UP');
$('#countdw').attr(“onclick”,“myfunction()”);
$.ajax({
url:“update.php”,
数据:{'user':'','data':''},
成功:功能(结果){
}
});
}
}, 1000);
}
up();
}

任何帮助都将不胜感激

小于或等于

# instead of
#     if(secsLeft == 0){
# test if it's less-or-equal zero
if(secsLeft <= 0){
#而不是
#如果(secsLeft==0){
#测试它是否小于或等于零

如果(secsLeft首先,我希望你原谅我的英语。我不能真正理解你的想法,但是当看到你的代码时,变量
mycount
的作用是什么?它在哪里定义?当
setInterval()时
在第一个脚本块运行时,
secsLeft
总是会不断减少。所以每次
secsLeft
都会
那么哪个部分不起作用。PHP脚本还是AJAX?你调试过看它停止处理的地方了吗?很好,是update.PHP,但感谢你推荐开发人员工具。我只是安装/使用了firebug,它帮助我发现了问题。我经常尝试secLeft,我们只能指出一些方向,尽管解决方案是其他的。:-)非常感谢您的回答。我已经实现了这一点,因为是的,这是有意义的,尽管我的原始代码似乎工作正常,但它只是update.php出现了问题。我注意到的一件事是,使用Chrome,setInterval运行极慢,可能只有我一个人?但使用我的代码和您的修订版本,我的倒计时非常快。你知道什么原因吗?也许只是我。根据用户的CPU使用情况,进程可能需要时间来运行。然后你必须考虑到,时间函数如<代码> SETIFATION 不能很好地遵守确切的定义的时间间隔。1000毫秒
;这样您就可以有一个边距误差。
# instead of
#     if(secsLeft == 0){
# test if it's less-or-equal zero
if(secsLeft <= 0){
 <script>
            var secsLeft = 8;
            var timedDecreaseID = setInterval(function(){
                secsLeft--;
                if(secsLeft > 0){
                    $('#countdw').val('Wait ' + secsLeft + 's');
                } else { //secsLeft <= 0
                    $('#countdw').removeClass('disabled');
                    $('#countdw').val('UP');
                    $('#countdw').attr("onclick","myfunction()");

                    clearInterval( timedDecreaseID );//will stop this timed function
                }
            }, 1000);        
        </script>  
<script>
            count=0;
            function myfunction(){
                if(mycount!=0 && mycount%25==0){

                }else{
                        var secsLeft = 8;
                        timedDecreaseID = setInterval(function(){
                            secsLeft--;
                            if(secsLeft > 0){
                                $('#countdw').addClass('disabled');
                                $('#countdw').val('Wait ' + secsLeft + 's');
                            } else {//secsLeft <= 0
                                $('#countdw').removeClass('disabled');
                                $('#countdw').val('UP');
                                $('#countdw').attr("onclick","myfunction()");

                                $.ajax({
                            url: "update.php", 
                            data:{'user':'<?php echo $subid ?>','data':'<?php echo $key ?>'},
                            success: function(result){

                            }
                        });

                        clearInterval( timedDecreaseID );//will stop this timed function
                            }
                        }, 1000);

                }
                up();
            }
        </script>