【问题标题】:Ajax call before jgrid is loaded加载 jgrid 之前的 Ajax 调用
【发布时间】:2010-08-26 09:21:53
【问题描述】:

我需要从 php 脚本中预加载一些值,我正在使用 $.post 调用(jquery),如下所示:

...    
var grade, section,from,until,user;


        function loadData(){
            $.post('procstring.php', {data: window.location.hash},
                   function(result){
                    grade = result.grade;
                    section = result.section;
                    from = result.from;
                    until = result.until;
                    user = result.user;
                    },
            'json');
        }

我需要这些值来呈现这样的 jqgrid

$("#list").jqGrid({

            url: 'report.php?g=' + grade + '&s=' + section + '&f=' + from + '&u='+ until + '&u=' + user + '&report=1&searchString=null&searchField=null&searchOper=null',
            datatype: 'json',
            mtype: 'GET',
…

所以我在$("#list").jqGrid({… 之前调用了loadData,但是jqgrid 似乎在loadData 之前加载了,不知道为什么,所以我在年级、部分变量中得到了未定义的值。

我尝试过使用诸如 beforeRequest 和 loadBeforeSend 之类的 jgrid 事件,但无济于事。

有什么建议吗?谢谢。

【问题讨论】:

    标签: jquery jqgrid jqgrid-php


    【解决方案1】:

    因为 AJAX 是异步的。您需要将$("#list").jqGrid({... 放入成功回调中:

    // No need to define the variables outside
    $.post('procstring.php', { data: window.location.hash },
        function(result)
            var grade = result.grade;
            var section = result.section;
            var from = result.from;
            var until = result.until;
            var user = result.user;
    
            $("#list").jqGrid({...
    },
    'json');
    

    【讨论】:

      猜你喜欢
      • 2014-10-30
      • 2018-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-18
      • 2017-09-01
      • 1970-01-01
      • 2021-11-27
      相关资源
      最近更新 更多