Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php jQuery/Javascript执行顺序?_Php_Javascript_Jquery - Fatal编程技术网

Php jQuery/Javascript执行顺序?

Php jQuery/Javascript执行顺序?,php,javascript,jquery,Php,Javascript,Jquery,我想弄清楚这里发生的事情的执行顺序。我使用jquery检索新数据,偶尔会出现异常情况。我如何确定其当前的工作流程顺序应该是这样的: Onload-get()函数(检索两个div的数据) move()函数通过按钮激活 php具有mysql\u查询更新操作 使用更新的数据库信息重新加载div 函数get(varpass){ varpass=typeof(varpass)!=“未定义”?varpass:“全部”; var j=“”; if(varpass==“all”| | varpass==“le

我想弄清楚这里发生的事情的执行顺序。我使用jquery检索新数据,偶尔会出现异常情况。我如何确定其当前的工作流程顺序应该是这样的:

  • Onload-get()函数(检索两个div的数据)
  • move()函数通过按钮激活
  • php具有mysql\u查询更新操作
  • 使用更新的数据库信息重新加载div

  • 函数get(varpass){
    varpass=typeof(varpass)!=“未定义”?varpass:“全部”;
    var j=“”;
    if(varpass==“all”| | varpass==“left”){
    $(“#左”).hide();
    $.get('data.php'{
    姓名:j,
    p:varpass
    },函数(输出){
    $('#左').html(输出).fadeIn(250);
    });
    }
    if(varpass==“all”| | varpass==“main”){
    $('#main').hide();
    $.get('main.php'{
    姓名:j,
    p:varpass
    },函数(输出){
    $('#main').html(输出).fadeIn(250);
    });
    }
    }
    $(文档).ready(函数(){
    获得(“全部”);
    });
    功能移动(p){
    var j=“”;
    $.get('move.php'{
    姓名:j,
    p:p
    },函数(输出){
    $('#debug').html(输出).fadeIn(1);
    });
    $('#main').hide();
    获取(“主”);
    }
    
    我发现有时div会在move.php mysql_查询完成之前检索信息。如何更好地控制执行顺序?我希望信息在再次调用从数据库检索数据之前完成更新


    谢谢

    我相信执行顺序与您期望的完全一样,除了以下代码片段:

    function move(p) {
        var j = "<?=$_SESSION['username']?>";
        $.get('move.php', {
            name: j,
            p: p
        }, function (output) {
            $('#debug').html(output).fadeIn(1);
        });
        $('#main').hide();
        get("main");  //this can/will happen before `move.php` completes
    }
    

    通过移动
    get(“main”)
    对于响应回调/处理程序,您可以确保在其他请求返回其响应之前不会执行它。

    供将来参考,请正确设置代码的格式以确保可读性:)您的意思是希望重复按钮单击在完成之前不调用移动功能吗?@Peter:我的意思是,一旦单击移动按钮,它应该:A.使用调整后的值更新sql,B.从数据库检索信息(假设新数据刚刚更改。我发现它将检索数据,但实际上尚未更新。我想我正在寻找一种强制执行顺序的方法。函数move()应调用php页面,该页面评估它应如何更改,然后更新数据库,然后获取(“main”)将把新数据检索到div中。这更有意义吗?我明白你的意思,@aroth。非常好的解释。非常感谢。
    function move(p) {
        var j = "<?=$_SESSION['username']?>";
        $.get('move.php', {
            name: j,
            p: p
        }, function (output) {
            $('#debug').html(output).fadeIn(1);
        });
        $('#main').hide();
        get("main");  //this can/will happen before `move.php` completes
    }
    
    function move(p) {
        var j = "<?=$_SESSION['username']?>";
        $.get('move.php', {
            name: j,
            p: p
        }, function (output) {
            $('#debug').html(output).fadeIn(1);
            get("main");  //this won't happen until after `move.php` completes
        });
        $('#main').hide();
    }