-1

我有一个包含 9 个不同 div 的 php 页面,这些 div 在每次从 mysql 数据库重新加载页面后都会更新。我想在不刷新整个页面的情况下自动完成。可能吗?我知道这可以通过 Ajax 完成,但我不明白我是如何做到的。任何人都可以让我知道这方面的好教程吗?

4

2 回答 2

1

使用 jQuery 有一个简单而有效的方法:

概述:在您将 ajax 调用定向到的脚本上,让它查询数据库并在 div 标签中回显您要替换的更新的 HTML,然后就像在匿名函数中用返回的 html 替换 div html 一样简单函数里面成功参数:

Javascript 文件中的 Ajax 调用

//wrap up your data in a GET style string seperated by ampersands (&)
var dataString = foo=1234&bar=12345

$.ajax({
  type: "POST",
  url: ajax.php,
  data: dataString,
  success: function(html) {
    $("#refresh_div").html(html);
},
  dataType: dataType
});

然后在您的“ajax.php”中,您可以通过 $_POST 超全局变量访问刚刚发送到 PHP 脚本的变量

$foo = $_POST['foo'];
$bar = $_POST['bar']

$mysqli= new mysqli($params);
$stmt = $mysqli->prepare("SELECT * FROM myTable WHERE id=?");
$stmt->bind_param('i',$foo);
$stmt->execute();
$stmt->bind_result($result);
$stmt->fetch();
$stmt->close();

echo $result

所有回显的文本/html 都将作为 html var 传递回 ajax 成功参数,然后您可以用 jquery 替换 div 内容。

希望这可以帮助。

于 2013-02-07T11:09:12.797 回答
1

如果我正确理解你的问题

window.setInterval(function(){
  // call your function here
  // make tha ajax call here to update the divs
  // this function will run every 5 secs and will make the AJAX call
  // write the function here to update the divs
}, 5000);

参见下文

使用 PHP 的 jQuery Ajax POST 示例

更新 Ajax 请求的整个页面

带有 id 的 div 上的 Ajax 更新

如果您不想不断更新页面,只需进行更新 div 的 AJAX 调用。

于 2013-02-07T11:04:40.307 回答