Обновление глобальной переменной после вызова функции ajax с помощью jQuery - PullRequest
1 голос
/ 13 июня 2011

Не уверен, почему следующее не работает.Я надеюсь, что кто-то может пролить свет.

У меня есть глобальный параметр, повторно представляющий определенный идентификатор элемента в базе данных.Теперь, чтобы проверить, следует ли обновить базу данных или сделать новую запись для элемента, я проверяю перед выполнением вызова ajax, установлена ​​ли переменная.Если переменная установлена, я знаю, что должен обновить базу данных, если она не установлена, я знаю, что должен вставить в базу данных.Затем на стороне сервера я возвращаю вновь сгенерированный идентификатор в случае вставки или просто старый идентификатор в случае обновления.Я использую форму jQuery и проверяю плагины между прочим (отсюда вызов функции ajaxSubmit ()).Однако назначение в функции успеха submitHandler, похоже, не работает (я проверил, что data.poiId возвращает подозрительный результат).

$(document).ready(function() {

    // Function which examines window.location.href and extracts a numerical id if there is one specified in the query
    var id = getParameter('poiId')

   ...

   },
   submitHandler : function(form) {
       var str = 'submitPOI.php';
       if (id.length > 0) str += '?poiId=' + id;

       $(form).ajaxSubmit({
           url : str,
           type : 'POST',
           dataType : 'json',
           success : function(data) {
               id = data.poiId     // Update POI id with response from server
           } 
       });
   }

   ...
});

1 Ответ

4 голосов
/ 13 июня 2011

Мне кажется, что ваша переменная id не является глобальной, поскольку она объявлена ​​в функции $ (document) .ready (). Переместите его за пределы функции и проверьте, работает ли он.

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