gpt4 book ai didi

javascript - Php JavaScript刷新某些div

转载 作者:行者123 更新时间:2023-11-28 14:40:30 25 4
gpt4 key购买 nike

我想做以下事情:

<html>
<div id="first"><?php echo time(); ?></div>
<div id="second">My dropdown menu goes here</div>
<div id="third"><?php echo time(); ?></div>
</html>

我有这个“example.php”,我想要的是每 1 秒刷新第一个和第三个 div 以及其中的 PHP 代码,而无需重新加载页面和更改第二个 div 的状态,第二个 div 将从下拉菜单中进行选择。

所以下拉菜单的选择应该是准确的,当我点击并打开下拉菜单时,菜单不能在第一和第三个div发生刷新时关闭。

另外,第一个和第三个div的刷新方法必须是同时的并且完全独立的进程。时间打印只是为了给我的问题提供一个随时间变化的值。我将在这些 PHP 代码中读取和打印 MySQL 数据库数据。

我如何使用 javascript 做到这一点?谢谢...

最佳答案

要达到您想要的结果,您需要使用AjaxJSON
您的 PHP 脚本将以 json 形式返回新数据,这些数据将通过 Ajax 获取,然后替换为目标 div。

但在我们开始之前,让我们了解一下 AjaxJSON

什么是 Ajax?

Ajax is a client-side script that communicates to and from a server/database without the need for a post back or a complete page refresh. Essentially, Ajax is “the method of exchanging data with a server, and updating parts of a web page – without reloading the entire page.”

什么是 JSON?

JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML.


如何将它与您的脚本集成?
我们将首先定义一个名为 update_data() 的 javascript 函数,它从服务器获取值,然后使用获取的值更新 div。

为此,我们将使用 jQuery作为依赖项并将利用它的 jQuery.ajax()方法
注意 - 要每秒自动调用该函数,我们还需要 setInterval方法

function update_data() {
$.ajax({
url: 'test.php', // Your PHP script location
type: "GET",
async: true, // refer to reference [1] in my answer
success: function (data) {
// Update the values

$('#first').text(data.time1); // get the value of `time1` key from returned data
// #first targets the element with id="first"

$('#third').text(data.time2);
}
});
}

setInterval("update_data();", 1000);
// calls the function `update_data()` every second

示例 PHP 脚本- (test.php)

<?php
if ($_SERVER['REQUEST_METHOD'] == "GET") {
$data = Array('time1' => time(), 'time2' => time());

// returns the data with mime type `json` instead of `html`
header("Content-Type: application/json; charset=UTF-8");
echo json_encode($data); // converts array into json
}
?>

上述 PHP 脚本将返回以下 JSON 结构:

{
"time1": 'value returned by first call to time()',
"time2": 'value returned by repeated call to time()'
}


完整的 html 示例(调用外部 php)-

<html>
<div id="first">Print some value on page load, will be replaced by Ajax</div>
<div id="second">My dropdown menu goes here</div>
<div id="third">Print some value on page load, will be replaced by Ajax</div>
<!-- Include jQuery -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
function update_data() {
$.ajax({
url: '/test.php', // Your PHP script location
type: "GET",
async: true, // refer to reference [1] in my answer
success: function(data) {
// Update the values

$('#first').text(data.time1); // get the value of `time1` key from returned data
// #first targets the element with id="first"

$('#third').text(data.time2);
}
});
}

setInterval("update_data();", 1000);
// calls the function `update_data()` every second
</script>
</html>


引用 -
1. What does "async: false" do in jQuery.ajax()?

关于javascript - Php JavaScript刷新某些div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53032151/

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