Сохранить данные возврата из вызова $ .post для дальнейшего использования? - PullRequest
0 голосов
/ 06 апреля 2011
// inside $(document).ready function...

var name = '';

function test()
{
    $.post('/student/get-info', function(data) {
        var student = $.parseJSON(data);            
        name = student.name;
    });

    // use 'name' to do something here or outside of this function
}

// I want to use 'name' later without calling '/student/get-info' again

Редактировать : name = ''

Редактировать : Вопрос в названии темы.Мой код не работает.После почтового звонка имя все еще пусто.Вот в чем проблема.

Редактировать : $ .getJSON там не так, вместо $ .parseJSON

Ответы [ 3 ]

2 голосов
/ 06 апреля 2011

объявляет var student в глобальной области видимости, чтобы он был доступен в другом месте, а не внутри функции document.ready

Или вы не можете загромождать глобальные переменные, пока вам не понадобится функция test () {}, и вы можете просто удалить префикс var, что сделает его глобальным (т. Е. Delete var name = 0;)

Edit :: Кроме того, следует отметить, что AJAX является асинхронным, поэтому то, что вы делаете, не будет работать. Добавьте к обратному вызову, чтобы делать то, что вы хотите, а не после него (так как у студента будет еще 0), или перестаньте делать вызов асинхронным

1 голос
/ 06 апреля 2011

Если вы хотите, чтобы переменная была глобальной, даже за пределами $(document).ready, вы можете инициализировать ее вне этого - возможно, непосредственно перед функцией $(document).ready.

Я думаю, что проблема, с которой вы можете столкнуться, заключается в том, что вы проверяете переменную name позже в коде, но до заполнения name. Весь код, который зависит от name, должен быть запущен после того, как вызов ajax извлечет данные. Так что либо в функции обратного вызова $.post(), либо после таймаута или события, которое проверяет, была ли еще заполнена переменная name.

0 голосов
/ 06 апреля 2011

Если все это в функции $(document).ready, у вас будет доступ к ней, поскольку она локальна для этой области.

Способ предоставления некоторого контекста и проверки вашего кода перед запросом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...