重新加载包含DB值的DIV

时间:2013-08-21 07:30:08

标签: php javascript jquery

我有三个不同的文件 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的新手!!!

4 个答案:

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