2010-08-26 2 views
0

мне нужно предварительно загрузить некоторые значения из PHP скрипт, я использую вызов в $ .post (Jquery) следующим образом:Ajax вызова до того jgrid загружен

...  
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 безрезультатно.

Любое предложение ?. Благодарю.

ответ

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'); 
+0

Возможно, вопрос новичков ... спасибо. – Felix

Смежные вопросы