重新加载包含DB值的DIV

Reload a DIV that includes DB value

本文关键字:包含 DB 值的 DIV 加载 新加载      更新时间:2023-09-26

我有三个不同的文件helper.phpscripts.phprofile.php。我有一个div,显示用户的点<div id="content"><?php echo $points ?></div>。它从helper.php中获取变量,在那里我有所有的DB查询。我只希望这个DIV每10秒重新加载一次,或者当用户单击重新加载按钮时。

所以我试着让它每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的新手!!!

我个人会使用Ben提供的REST方法。但是,如果你设置使用加载,你可以使用元素ID过滤它返回的HTML。

$("#content").load("index.php #content");

整个index.php仍然会被加载,所以它不像使用JSON只发送点数那样高效。

您只能使用重新编码孔页面来运行php代码
其他明智的做法是使用ajax xmlrequest和javascript

或者,您可以简单地为index.php使用jquery ajax函数,并将其显示在div 中

一种高度复杂的方法是创建一个REST web服务,该服务提供有效的JSON,并让jQuery从类似http://anyhost.com/REST/points/user/JoeBud/.学习并不难。

另一种方法是在会话变量中保留user_id,并创建一个专用的points.php文件,该文件从会话中检索user_id并执行db查询。该文件可以使用setTimeOut方法实现

如果您想正确地执行此操作,则需要使用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);