2014-04-18 2 views
0

Я очень новичок в Ajax и в более поздний срок.Как использовать значение из функции ajax за пределами блока успеха

У меня есть функция AJAX

$.ajax({ 
    type: "POST", 
    url: 'CritAdd.php?', 
    data: { currfilterfields : currfilterfields }, 
    async: false, 
    success: function(msg) { 
     var javminmaxarray = $.parseJSON(msg); 
     alert(msg); 
     alert(javminmaxarray); 
    } 
}); 

Это отлично работает и получает данные хранятся в глобальной переменной массива «javminmaxarray». Оповещения, выставленные для тестирования, также показывают ожидаемые значения.

Однако, когда я использую этот глобальный массив в своей функции, где ему нужно получить доступ, как показано ниже, значение отображается как empty/undefined.

function closemodal() { 
    alert(javminmaxarray[0]); 
} 

Я сделал asynch опцией ajax как false, но это тоже не сработало. Пожалуйста, предложите, как использовать значение из функции ajax вне блока успеха.

ответ

1

изменить это ..

var javminmaxarray = $.parseJSON(msg); 

в

javminmaxarray = $.parseJSON(msg); 
+0

Это работало. Я объявил javminmaxarray глобально, но оставил объявление var в блоке успеха по ошибке. Спасибо. – John

1

объявить вам javminmaxarray переменную вне функции $.ajax.

var javminmaxarray = {}; 

// .... 

$.ajax({ 
    //... 
    success: function(msg) { 
     javminmaxarray = $.parseJSON(msg); 
    } 
}); 

, а затем использовать функцию, как бы вы хотели

function closemodal(){ 
    alert(javminmaxarray[0]);} 
+0

Это сработало. Я объявил javminmaxarray глобально, но оставил объявление var в блоке успеха по ошибке. Спасибо. – John

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