繁体   English   中英

在使用 jQuery 调用 ajax function 之后更新全局变量

[英]Updating global variable after ajax function call with jQuery

不知道为什么以下不起作用。 我希望有人能解释一下。

我有一个全局参数,用于重新表示数据库中某个项目的某个 id。 现在为了检查数据库是否应该更新或是否应该为该项目创建一个新条目,如果设置了变量,我在进行 ajax 调用之前检查。 如果设置了变量,我知道我必须更新数据库,如果没有设置,我知道我必须插入数据库。 然后在服务器端我返回一个新生成的 id 以防插入,否则只返回旧 id 以防更新。 我使用 jQuery 表单并顺便验证插件(因此 function 调用 ajaxSubmit())。 但是,submitHandler 的成功 function 中的赋值似乎不起作用(我已经检查过 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
           } 
       });
   }

   ...
});

在我看来,您的 id 变量不是全局变量,因为它在 $(document).ready() function 中声明。 将其移出 function 并检查它是否有效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM