我有一个包含 9 个不同 div 的 php 页面,这些 div 在每次从 mysql 数据库重新加载页面后都会更新。我想在不刷新整个页面的情况下自动完成。可能吗?我知道这可以通过 Ajax 完成,但我不明白我是如何做到的。任何人都可以让我知道这方面的好教程吗?
问问题
1506 次
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);
参见下文
如果您不想不断更新页面,只需进行更新 div 的 AJAX 调用。
于 2013-02-07T11:04:40.307 回答