更新 我用这个:
$.getimagesarr = function(operation) {
return $.ajax({
type: 'POST',
url: 'operations.php',
data: {'operation':operation},
async: false
}).responseText
}
var jsonstring = $.getimagesarr('getimg');
var data = (new Function("return " + jsonstring))()
if (data){
....
}
旧: 我想将一个php aray传递给jQuery:
$.getimagesarr = function() {
$.getJSON('operations.php', {'operation':'getimglist'}, function(data){
var arr = new Array();
arr = data;
return arr;
});
}
var data = $.getimagesarr();
if (data){
jQuery.each(data, function(i, val) {
....
});
}
它返回undefined
在php中我有这个:function getimglist(){
$results = $_SESSION['files'];
echo json_encode($results);
}
有可能吗?
答案 0 :(得分:1)
return arr;
行不会返回$.getimagesarr
函数的值。在$.getJSON()
调用完成后,它将异步执行。您应该将代码的底部区域移动到$.getJSON()
调用的成功事件处理程序中:
$.getimagesarr = function() {
$.getJSON('operations.php', {'operation':'getimglist'}, function(data){
if (data){
jQuery.each(data, function(i, val) {
....
});
}
});
};