Глобальная переменная в JavaScript не изменилась - PullRequest
0 голосов
/ 21 января 2012
    $check = "";

    $.ajax({
        url: "check.php",
        type: "POST",
        cache: false,
        data: $name + "=" + $value,
        success: function(data){
            $check = data;
            alert($check);
        }
    });

    alert($check);

Первое сообщение "Hello"

Второе сообщение "" Почему?

Ответы [ 2 ]

6 голосов
/ 21 января 2012

$.ajax - асинхронная функция, она немедленно возвращается и вызывает ответный вызов success, когда получен ответ об успешном выполнении.

Поэтому, когда выполняется alert($check) внизу вашего кода, значение $check еще не модифицируется обратным вызовом ajax.Вот почему вы видите пустую строку.

1 голос
/ 21 января 2012

JQuery AJAX функция по умолчанию является асинхронной.поэтому выполнение dosent ожидает возврата значения функции.так что майб, потому что вы работаете на локальном сервере разработки.и быстрый пост-запрос ajax, и вы возвращаете слово hello в ответ на ваш пост-запрос, поэтому первое предупреждающее сообщение «Hello»а затем выполнение продолжается и возвращает оповещения о $chek локальном значении снова

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