我有三个不同的文件 helper.php , scripts.php 和 profile.php 。进入 profile.php 我有 DIV ,显示用户的分数<div id="content"><?php echo $points ?></div>
。它需要来自 helper.php 的变量,其中包含所有数据库查询。我只希望每隔10秒重新加载 DIV 或用户点击重新加载按钮。
所以fisrt我试着让它每10秒重新加载一次。我发现了一个这样的脚本:
<script type="text/javascript">
var $JQ = jQuery.noConflict();
function Reload_Content(){
$JQ('#content').load('index.php').fadeOut(1000).fadeIn(1000);}
setInterval('Reload_Content()', 10000);
</script>
这个脚本,就像现在一样,每10秒重新加载我的整个index.php而不仅仅是包含用户点数的DIV!
我知道如何让它发挥作用?提前谢谢!
PS:我是JQuery的新手!!!
答案 0 :(得分:0)
你只能使用重新编码孔页面来运行php代码 其他明智的使用ajax xmlrequest和javascript
或者只是你可以使用jquery ajax函数为index.php并在该div中显示它
答案 1 :(得分:0)
一种非常复杂的方法是创建一个REST Web服务,它提供有效的JSON,让jQuery在http://anyhost.com/REST/points/user/JoeBud/之类的资源上获取它们。 这并不难学。
另一种方法是在会话变量中保留user_id并创建一个专用的points.php文件,该文件从会话中检索user_id并执行数据库查询。 可以使用setTimeOut-approach
实现此文件答案 2 :(得分:0)
我个人会使用Ben提供的REST方法。但是,如果您设置使用加载,则可以使用元素ID过滤它返回的HTML。
$("#content").load("index.php #content");
整个index.php仍然会被加载,因此它不如使用JSON只发送点数那样有效。
答案 3 :(得分:0)
如果要正确执行此操作,则需要使用AJAX。首先,您需要一个返回JSON中的点数的端点。例如:
$points = 50; // Retrieve your points before here.
echo json_encode(array(
'points' => $points
));
// This will return: {points: 50}
然后将此points-api.php
命名为您的船上的任何浮动,然后您可以使用此脚本每隔几秒检索一次点数:
var refresh_points = function() {
$.ajax({
type: "GET",
url : "/points-api.php",
success: function(data) {
$('#points-div').html(data.points);
}
});
}
setInterval(refresh_points, 10000);