$.getJSON 不检索最新信息
Posted
技术标签:
【中文标题】$.getJSON 不检索最新信息【英文标题】:$.getJSON does not retrieve up-to-date information 【发布时间】:2021-11-07 20:16:03 【问题描述】:我设置了一个 mysql 数据库。我有一个 php 文件,它连接到数据库并根据数据库的信息创建一个数组。然后它会回显编码为 JSON 的数组。我有一个带有 javascript 的 html 文件来检索此 JSON 并将其记录在控制台上。
问题:当我在更新表格后运行 HTML 文件时,它不会显示新信息。在运行控制台的 HTML 文件之前,我必须手动运行创建 JSON 的 PHP 文件,以向我显示更新的信息。 如何在不手动运行 PHP 脚本的情况下让 HTML 文件始终从我的数据库中检索最新信息?
这里是 PHP 文件 (db.php):
<?php
include ("database_connect.php");
$sql = "SELECT * FROM markers";
$result = $conn->query($sql);
$array = array();
$i = 0;
while($row = $result->fetch_assoc())
$array[$i] = $row;
$i++;
echo json_encode($array);
$conn->close();
?>
这是 HTML 文件 (db.html):
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
</head>
<script>
$.getJSON('db.php', function(data)
console.log(data);
);
</script>
</html>
【问题讨论】:
如何运行HTML文件和PHP文件?手动运行一个PHP文件是什么意思? @ThomasSablik 我的网站根目录中有这些文件。我必须在打开 HTML 文件之前打开 PHP 文件,以便 HTML 文件将更新的数据库信息记录到控制台。 Felix 的回答解决了这个问题。 【参考方案1】:您不能将 JQuery 代码放入脚本中。您必须嵌入onReady()
电话;否则,它将在加载 HTML 之前执行
$(document).ready(function()
$.getJSON('db.php', function(data)
console.log(data);
);
);
另外,请删除愚蠢的“免责声明”。对开发来说是新手没什么错。只要您阅读tutorial,您就应该很好。这种“免责声明”被视为提出草率问题的借口;而你实际上不太可能会得到答案!
【讨论】:
这很好用,虽然我不确定它为什么会起作用。我会查看您添加的内容的文档。 任何JQuery
文档都对此进行了详细说明;例如,这个:api.jquery.com/ready【参考方案2】:
在页面上创建一个刷新按钮并为其分配点击监听器。
$(document).on('click', '#refresh_button', function ()
$.getJSON('db.php', function(data)
RefreshTableFunction(data);
);
);
现在的问题是你需要刷新页面才能从服务器(php文件)获取数据
【讨论】:
以上是关于$.getJSON 不检索最新信息的主要内容,如果未能解决你的问题,请参考以下文章
什么是 Jquery 的 $.getJSON 的香草 JS 版本
我可以在 $.getJSON 函数中使用递归 JavaScript 函数吗?