我有一个不断更新的MySQL表,它的行数少于10。是否可以在网页中实时显示此表?我听说可以使用Ajax完成此操作,到目前为止,我所看到的所有示例仍然非常令人困惑。到目前为止,我只能使用以下代码通过PHP在网页中显示静态表格:
<table>
<tr>
<th>User ID</th>
<th>Current Location</th>
</tr>
<?php
define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'root');
define('DB_PASSWORD', '');
define('DB_NAME','test1');
$link=mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_NAME);
if($link===false){
die("ERROR: Could not connect.". mysqli_connect_error());
}
$sql = "select * from last_seen";
$result = mysqli_query($link,$sql);
if($result->num_rows>0){
while($row=$result->fetch_assoc()){
echo "<tr><td>".$row["user_id"]."</td><td>".$row["location"]."</td></tr>";
}
echo "</table>";
}
else{
echo "0 Results";
}
?>
但是我还没有找到一种无需刷新页面即可实时更新的方法。我要显示的表格如下:
user_id location
------- --------
1 room1
2 room2
3 room1
答案 0 :(得分:1)
您可以将其用作单独页面并使用它来调用ajax,
table_data.php
<table>
<tr>
<th>User ID</th>
<th>Current Location</th>
</tr>
<?php
define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'root');
define('DB_PASSWORD', '');
define('DB_NAME','test1');
$link=mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_NAME);
if($link===false){
die("ERROR: Could not connect.". mysqli_connect_error());
}
$sql = "select * from last_seen";
$result = mysqli_query($link,$sql);
if($result->num_rows>0){
while($row=$result->fetch_assoc()){
echo "<tr><td>".$row["user_id"]."</td><td>".$row["location"]."</td></tr>";
}
echo "</table>";
}
else{
echo "0 Results";
}
?>
和主文件 index.php
<h1>Table Data</h1>
<div id="table_data"></div>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
var RefreshTimerInterval = 5000; // every 5 seconds
$(document).ready(getData);
function getData() {
$.get('table_data.php', function(result) {
$('#table_data').html(result);
setTimeout(getData, RefreshTimerInterval);
}
}
</script>
答案 1 :(得分:0)
为什么不使用jQuery将输入的数据附加到表上呢?这样,它仍然可以显示您插入的内容,而无需浪费带宽?
编辑-
哦,等等,我忘记了您可能需要ID来执行更新/删除操作。我建议将该表的逻辑放在另一个PHP脚本(例如table.php)中,然后使用对该脚本的AJAX调用来刷新该“容器”?
编辑#2-
抱歉,可能应该举一些我在说什么的例子。
假设您的表位于中,我建议您使用一个单独的PHP脚本(称为table.php),该脚本实际上为您构建该表(当您最初加载页面时,我会将这个脚本包含在主脚本中)。
在您的JS中添加以下功能...
function getNewTable() {
$("#data-table").load("table.php");
}
更新数据后,调用getNewTable()就是这样。希望对您有帮助!