передать массив php в jquery с помощью getJSON - PullRequest
0 голосов
/ 22 апреля 2010

Последнее обновление: я использую это:

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

возвращает неопределенное значение

в php у меня есть это:

function getimglist(){
    $results = $_SESSION['files'];
    echo json_encode($results);
}

можно?

1 Ответ

1 голос
/ 22 апреля 2010

Строка return arr; не будет возвращать значение для функции $.getimagesarr.Он будет выполняться асинхронно после завершения вызова $.getJSON().Вы должны переместить нижнюю область кода в обработчик события успеха для вызова $.getJSON():

$.getimagesarr = function() {
    $.getJSON('operations.php', {'operation':'getimglist'}, function(data){
        if (data){
            jQuery.each(data, function(i, val) {
                ....
            });
        }
    });  
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...