Я пытаюсь сделать php-файл, в котором я буду отправлять данные из базы данных, и через них я покажу 0 или 1. В моем примере у меня есть таблица с двумя user_ids и параметром in
который принимает значение 0 или 1. Из test.php Я заполняю форму, указав user_id, и отправляю ее. Когда я отправляю это для этого пользователя параметр in
становится 0, если это было 1, и наоборот. В 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-запроса вы можете легко установить функцию тайм-аута для обновления вашего iframe каждые x секунд / минут.
Этот вопрос дает хорошее описание о том, как это сделать.
Других решений пока нет …