jquery全局变量在ajax函数中没有更新

时间:2014-07-22 02:26:49

标签: javascript php jquery ajax

我有以下代码:

<script type="text/javascript">
<!-- PAGER
var pag = 1;
var loading = false;
var pag1 = <?php echo $k1; ?>;
var pag2 = <?php echo $k2; ?>;
var max_pages_number = <?php echo $max_pages_number; ?>;
jQuery('body').on('click',"#registry_show_more",function(){
    if(pag < max_pages_number && !loading) {
        loading = true;
        jQuery(this).hide();
        jQuery("#spinner").show();
        alert(pag1 + ' ' + pag2); //alert 1
        jQuery.ajax({
              type: 'POST',
              url: '<?php echo admin_url('admin-ajax.php'); ?>',
              data: {
                action: 'registry_paggination',
                page: pag+1,
                p1: pag1,
                p2: pag2,
                page_size: <?php echo $page_size; ?>,
                category: <?php echo $kategoria; ?>,
                category_slug: '<?php echo $kategoria_slug; ?>',
                filtr: '<?php echo $filtr; ?>',     
                access: <?php echo $access; ?>,
              },
              success: function(data, textStatus, XMLHttpRequest){
                pag++;
                jQuery("#spinner").hide();
                if(pag < max_pages_number) {
                  jQuery('#registry_show_more').show();
                }
                if(data) {
                  jQuery("#newpages").append(jQuery("#newpages").html() +data); 
                  FB.XFBML.parse();
                  jQuery('.open-iframe-lightbox').magnificPopup({type:'iframe'});
                  pag1 = parseInt(jQuery("#p1").attr('value'),10);
                  pag2 = parseInt(jQuery("#p2").attr('value'),10);
                  alert(pag1 + ' ' + pag2); //alert 2
                  jQuery("#p1").remove();
                  jQuery("#p2").remove();
                }
                loading = false;
              },
              error: function(MLHttpRequest, textStatus, errorThrown){
                  jQuery("#spinner").hide();                                        
              }
          });
        }
  });
//-->
</script>

变量pag, pag1, pag2在成功函数后更新。我知道,因为我使用两个警报来检查它。但是ajax函数发送默认值。 例如: 初始值:

pag = 1;
pag1 = 18;
pag2 = 2;

第一个提醒显示:

"18 2"

ajax发送:

 page: 2, 
 p1: 18, 
 p2: 2  
 //skiping the rest of variables

第二个警报显示(刚刚更新):

 "35 5"

一切都很好,但下次点击:

第一个提示显示: - 确定

"35 5"

ajax发送: - 不行

page: 2, 
p1: 18, 
p2: 2  
//skiping the rest of variables

第二个警报显示(刚更新): - 好的,因为ajax发送与之前相同的数据

"35 5"

我不知道为什么AJAX函数每次都发送相同的数据而不是新的更新值。

我开始认为,似乎AJAX函数中DATA部分中的变量与全局变量pag,pag1,pag2不同,或者它们是常量。

我希望这个例子足够清楚。

提前感谢您的回答

编辑: 我设法解决了这个问题。问题是别的。我用过。 Append()是添加新数据但是当我使用时。 Html()一切正常。 很抱歉给您带来不便。

0 个答案:

没有答案