php通过ajax加载增加数量

时间:2016-02-18 09:24:52

标签: php jquery ajax

我有一个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>

有什么想法吗?

3 个答案:

答案 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>