我有一个php循环,有一些php递增的数字:
<loop start>
<?php $num=0; $onum=0; ?>
<div class="<?php echo ++num; ?>"></div>
<div class="<?php echo ++onum; ?>"></div>
</loop end>
现在这个循环正在运行以获取页面上的帖子,但是另一个页面上的帖子使用 ajax 加载到同一页面上,为此重置了数字值。
所以而不是得到这个:
<loop start>
<div class="1"></div>
<div class="2"></div>
</loop end>
<loop start>
<div class="3"></div>
<div class="4"></div>
</loop end>
<!-- ajax load -->
<loop start>
<div class="5"></div>
<div class="6"></div>
</loop end>
我得到这个:
<loop start>
<div class="1"></div>
<div class="2"></div>
</loop end>
<loop start>
<div class="3"></div>
<div class="4"></div>
</loop end>
<!-- ajax load -->
<loop start>
<div class="1"></div>
<div class="2"></div>
</loop end>
有什么想法吗?
当你调用ajax时,你的PHP脚本不知道当前值是什么。因此,您需要将其与每个(ajax)请求一起发送。
http://example.com/your-ajax-script.php?num=3&onum=4
然后在服务器端,你会得到这样的值:
$num = isset($_GET['num']) && !empty($_GET['num']) ? (int)$_GET['num'] : 0;
$onum = isset($_GET['onum']) && !empty($_GET['onum']) ? (int)$_GET['onum'] : 0;
// the reste of your code.
我建议你在ajax参数中发送最后loop
的最后一个div
的类,所以它也需要在php端进行更改,就像:
<loop start>
<?php
$num=isset($_REQUEST['num']) ? $_REQUEST['num'] : 0;
$onum=isset($_REQUEST['num']) ? $_REQUEST['num'] : 0;
?>
<div class="<?php echo ++num; ?>"></div>
<div class="<?php echo ++onum; ?>"></div>
</loop end>
你可以像这样使用 Ajax:
$.post('url', {
num:parseInt($('loop:last').find('div:last').attr('class'), 10)
}, function (data){
// success callback
});
你必须在循环之外声明var
<?php $num=0; $onum=0; ?>
<loop start>
<div class="<?php echo ++num; ?>"></div>
<div class="<?php echo ++onum; ?>"></div>
</loop end>