加载jqgrid之前的Ajax调用

时间:2010-08-26 09:21:53

标签: 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 = 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之前加载的,不知道为什么,所以我在等级,section变量中得到了未定义的值。

我尝试过像beforeRequest和loadBeforeSend这样的jgrid事件但没有用。

有什么建议吗?感谢。

1 个答案:

答案 0 :(得分:0)

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