gpt4 book ai didi

php - 使用 mysql 查询每隔几秒刷新一次文本框?

转载 作者:行者123 更新时间:2023-11-28 23:16:07 26 4
gpt4 key购买 nike

我的代码中有这个文本框,每次加载/刷新此页面时,其内容都会填充查询结果。但是由于在我的情况下手动刷新不是一个选项,我该如何自动执行此操作(我只想刷新文本框)?我读过有关使用 AJAX 的文章,我也一直在阅读它,但老实说,我不太明白如何让它工作,有人可以向我解释并简化它吗?有没有更简单的方法来使用查询内容刷新文本框?

编辑:好的,我想我理解了 AJAX 的基础知识,该函数现在每秒刷新一次文本框,但是有一个小问题。它把我的 table 弄得一团糟。我已经修改了 HTML 代码,希望有人能告诉我我做错了什么。我在想我不应该在表格中包含一个 div 吗? Here's我的 table 看起来如何 how it looks like在这个小更新之后

<?php
include '../Login/db_login.php';
session_start();
$sql = "SELECT Contador FROM senhas2 WHERE ID=1";
$result = $conn->query($sql);
$row = $result->fetch_assoc();
$nome = $row['Contador']
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Página de administração - A</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
setInterval(function(){
$('#refreshtb').load('bt1admin.php');
}, 1000)
</script>
</head>

<body>
<form action="" id="atender" method="POST">
<table border="1">
<tr>
<td>Clientes em espera:</td>
<td><div id="refreshtb"><input id="refreshtb" type="text" value="<?php echo "$nome";?>"readonly></div></td>
</tr>
<tr>
<td>Selecionar posto de atendimento:</td>
<td><select name="posto"><option value="n1" selected>1</option><option value="n2">2</option><option value="n3">3</option><option value="n4">4</option><option value="n5">5</option><option value="n6">6</option></select>
</tr>
<tr>
<td colspan="2"><input type="submit" form="atender" name="atender" value="Atender Cliente Seguinte"></td>
</tr>
</table>
</form>
</body>
</html>

最佳答案

您不能使用 PHP 更改页面的内容。您需要使用前端语言,例如 Javascript。 Javascript 能够更改您的页面内容,即使在加载后也是如此。为了每 X 秒更新一次页面内容,您需要使用 Javascript 的 setInterval() 函数每 X 秒运行一次函数。此功能将使用 AJAX 向您的网站发送请求并收集更多数据,然后更新您的文本框以包含此新数据。您可能会发现这个 Stackoverflow 问题很有帮助:How does AJAX work?

编辑:为了消除我们评论讨论中的一些困惑,并响应您的编辑,我对您的代码做了一些修改。试试这个:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Página de administração - A</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
setInterval(function(){
$.ajax('bt1admin.php').done(function(data) {
$("#refreshtb").val(data);
})
}, 1000);
</script>
</head>

<body>
<form action="" id="atender" method="POST">
<table border="1">
<tr>
<td>Clientes em espera:</td>
<td><div><input id="refreshtb" type="text" value="<?php echo "$nome";?>"readonly></div></td>
</tr>
<tr>
<td>Selecionar posto de atendimento:</td>
<td><select name="posto"><option value="n1" selected>1</option><option value="n2">2</option><option value="n3">3</option><option value="n4">4</option><option value="n5">5</option><option value="n6">6</option></select>
</tr>
<tr>
<td colspan="2"><input type="submit" form="atender" name="atender" value="Atender Cliente Seguinte"></td>
</tr>
</table>
</form>
</body>
</html>

我做了什么:

  • 首先,您有重复的 #refreshtb 元素,所以我删除了其中一个。
  • 您还使用了 JQuery 中的 .load() 方法。这不会更新 HTML 输入的。相反,它只是替换了子 HTML,这不是您想要的。我更新了您的脚本,现在更新了 #refreshtb 输入元素的值。

经过测试,它似乎对我来说工作正常。如果在此之后您仍然遇到那个奇怪的表格问题,或者由于某种原因该字段没有正确更新,我怀疑这是您的 bt1admin.php 页面的问题。确保该页面没有输出整个表格,而是只是您想要输入文本框的值。

关于php - 使用 mysql 查询每隔几秒刷新一次文本框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43815012/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com