Ajax вызов до загрузки jgrid - PullRequest
       1

Ajax вызов до загрузки jgrid

0 голосов
/ 26 августа 2010

Мне нужно предварительно загрузить некоторые значения из сценария 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',
…

Так что я вызываю loadData до $("#list").jqGrid({…, но jqgrid, кажется, загружается до loadData, не знаю почему, поэтому я получаю неопределенные значения в классе, переменных раздела.

Я пробовал с событиями jgrid, такими как beforeRequest и loadBeforeSend, но безрезультатно.

Есть предложения ?.Спасибо.

1 Ответ

0 голосов
/ 26 августа 2010

Потому что 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');
...