我的代码有问题,应该在单击"更多新闻文章"时更改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()},
.................
});