用getJSON将php数组传递给jquery

时间:2010-04-22 06:33:58

标签: php jquery arrays object

更新 我用这个:

$.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);
}

有可能吗?

1 个答案:

答案 0 :(得分:1)

return arr;行不会返回$.getimagesarr函数的值。在$.getJSON()调用完成后,它将异步执行。您应该将代码的底部区域移动到$.getJSON()调用的成功事件处理程序中:

$.getimagesarr = function() {
    $.getJSON('operations.php', {'operation':'getimglist'}, function(data){
        if (data){
            jQuery.each(data, function(i, val) {
                ....
            });
        }
    });  
};