我有以下代码:
<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()一切正常。 很抱歉给您带来不便。