Jquery,Call只成功完成一次,之后它将保持相同的结果


Jquery, Call is only done one time successfully and after that it stays on the same result

我的代码有问题,应该在单击"更多新闻文章"时更改div中的内容,因为更改只会发生一次。我在Chrome开发人员模式下看到,它会触发每次点击请求。出了什么问题?

输出.php

<?php
require_once('../pe13f/SSI.php');
require_once ('../PE13/smf_2_api.php');
?>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
function MakeRequest(id)
{
    $.ajax({
        url : 'display.php',
        data:{"id":id},
        type: 'GET',
        success: function(data){
            $('#streaminnern').html(data);
        }
    });
}
</script>
<div id="stream" class="bg4 roundedcrop shadow">
  <div class="ph25 pv20">
    <h1>News</h1>
    <input id="streamcnt" name="streamcnt" type="hidden" value="" />
  </div>
  <div id="streamadd"></div>
  <div id="streaminnern">

<?php 
$num_recent = 5;
echo $num_recent;
?> 
</div> 
    <div onclick="MakeRequest(<?php echo $num_recent; ?>);" id="streammore">More News articles</div>
</div>

后台php显示.php

<?php 
$num_recent = $_GET['id']+5;
echo $num_recent; 
?> 

问候Emil

检查output.php生成的源代码。您会发现onclick="MakeRequest(5);"。基本上,每次点击都会调用MakeRequest(5),它总是触发调用display.php?id=5(您可能会在开发控制台中看到)。

试试这样的东西:

<script>
var lastId = 0; // var that stores last fetched ID
function MakeRequest(id)
{
    if(!lastId) // if there is no last ID use the one from initial onclick
        lastId = id;
    $.ajax({
        url : 'display.php',
        data:{"id":lastId}, // note that we are using the lastId var
        type: 'GET',
        success: function(data){
            $('#streaminnern').html(data);
            lastId = data;  // save fetched ID in our global var
        }
    });
}
</script>

请求总是相同的。假设CCD_ 1最初被设置为5。

然后根据您的代码MakeRequest(5)将被执行。您的ajax调用使用类streaminnern更新div。因此,新的id对下一次ajax调用没有影响。对于要发送更新值的ajax请求,您可以设置

$.ajax({
        url : 'display.php',
        data:{"id":$('#streaminnern').html()}, 
       .................
  });