我有一个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>
有什么想法吗?
答案 0 :(得分:1)
当您进行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.
答案 1 :(得分:1)
我建议你在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
});
答案 2 :(得分:1)
你必须在循环之外声明var
<?php $num=0; $onum=0; ?>
<loop start>
<div class="<?php echo ++num; ?>"></div>
<div class="<?php echo ++onum; ?>"></div>
</loop end>