Jquery 加载jgrid之前的Ajax调用

Jquery 加载jgrid之前的Ajax调用,jquery,jqgrid,jqgrid-php,Jquery,Jqgrid,Jqgrid Php,我需要从php脚本中预加载一些值,我正在使用$.post调用jquery,如下所示: ... var grade, section,from,until,user; function loadData(){ $.post('procstring.php', {data: window.location.hash}, function(result){ grade =

我需要从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事件,但没有成功


有什么建议吗?。谢谢。

因为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');