现场实时更改
Live changes on site
我正在尝试制作一个 php 文件,我将从数据库发送数据并通过它们显示 0 或 1。在我的示例中,我有一个 table 和两个 user_ids 和一个取值 0 或 1 的参数 in
。从 test.php 我通过给 user_id 填写表格并提交它。当我为该用户提交它时,如果参数 in
为 1,则参数变为 0,反之亦然。在 next.php 中,我使用 <iframe src="show.php">
,在 show.php 中,我显示 user_id
和 in
。我想要的是当我提交一个user_id,立即看到show.php的变化。我所做的是一直刷新页面,但它太令人不安了。你能建议别的吗?这是一些代码。
test.php
<?php
require_once 'include_php/db.php';
global $dbcnx;
?>
<form action="" method="get">
<input type="text" name="id"/>
<input type="submit" name="submit"/>
</form>
<?php
if(isset($_GET['submit']))
{
$id = $_GET['id'];
$res = mysqli_query($dbcnx, "select * from people where uid = ".$id.";");
$row = mysqli_fetch_array($res);
if($row['in'] == 0) $up = mysqli_query($dbcnx, "UPDATE `people` SET `in`=1 WHERE uid=".$id.";");
else $up = mysqli_query($dbcnx, "UPDATE `people` SET `in`=0 WHERE uid=".$id.";");
}
show.php
<?php
require_once 'include_php/db.php';
global $dbcnx;
$res = mysqli_query($dbcnx, "select * from people");
while($row = mysqli_fetch_array($res))
{
echo $row['uid']." ".$row['in']."<br/>";
}
print "<script>window.location.replace('show.php');</script>"; //here is the disturbing refresh
next.php
<iframe src="show.php">
您想要的是实时更新而不用硬刷新页面。您可以通过使用 AJAX 请求或使用 websockets 来实现此目的。
对于 ajax 请求,您可以轻松地设置超时功能以每隔 x-seconds/minutes.
刷新您的 iframe
This question 很好地描述了如何试一试。
我正在尝试制作一个 php 文件,我将从数据库发送数据并通过它们显示 0 或 1。在我的示例中,我有一个 table 和两个 user_ids 和一个取值 0 或 1 的参数 in
。从 test.php 我通过给 user_id 填写表格并提交它。当我为该用户提交它时,如果参数 in
为 1,则参数变为 0,反之亦然。在 next.php 中,我使用 <iframe src="show.php">
,在 show.php 中,我显示 user_id
和 in
。我想要的是当我提交一个user_id,立即看到show.php的变化。我所做的是一直刷新页面,但它太令人不安了。你能建议别的吗?这是一些代码。
test.php
<?php
require_once 'include_php/db.php';
global $dbcnx;
?>
<form action="" method="get">
<input type="text" name="id"/>
<input type="submit" name="submit"/>
</form>
<?php
if(isset($_GET['submit']))
{
$id = $_GET['id'];
$res = mysqli_query($dbcnx, "select * from people where uid = ".$id.";");
$row = mysqli_fetch_array($res);
if($row['in'] == 0) $up = mysqli_query($dbcnx, "UPDATE `people` SET `in`=1 WHERE uid=".$id.";");
else $up = mysqli_query($dbcnx, "UPDATE `people` SET `in`=0 WHERE uid=".$id.";");
}
show.php
<?php
require_once 'include_php/db.php';
global $dbcnx;
$res = mysqli_query($dbcnx, "select * from people");
while($row = mysqli_fetch_array($res))
{
echo $row['uid']." ".$row['in']."<br/>";
}
print "<script>window.location.replace('show.php');</script>"; //here is the disturbing refresh
next.php
<iframe src="show.php">
您想要的是实时更新而不用硬刷新页面。您可以通过使用 AJAX 请求或使用 websockets 来实现此目的。
对于 ajax 请求,您可以轻松地设置超时功能以每隔 x-seconds/minutes.
刷新您的 iframeThis question 很好地描述了如何试一试。