我需要从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事件但没有用。
有什么建议吗?感谢。
答案 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');