我遇到了问题,希望你能提供帮助。 我有一个包含js的status.PHP文件。
STATUS.PHP
<? ..stuff... ?>
<html>
<head>
<title>BCM Status Page</title>
<script src="jquery-3.3.1.min.js"></script>
<script src="updater.js"></script>
</head>
<body bgcolor="#305c57" onload='init();'>
正如你在html中看到的那样,包括一个JS,在&#34; onload&#34;我正在调用名为updater.js的javascript的init()函数
现在位于 UPDATER.JS
function init() {
setInterval(read, 2000)
}
function read() {
$.ajax({
type: 'POST',
url: 'readDB.php',
dataType: 'jsonp',
success: function (data) {
console.log(data);
var json_obj = $.parseJSON(data);
console.log(json_obj[0].gwnumber);
},
error: function () {
console.log("Error loading data");
}
});
}
我正在按照预期的方式对readDB.php进行ajax调用,事实上我在json_obj中有正确的值。
我的问题是:如何获取json_obj值并将其传递给status.PHP文件,该文件也包括JS? 希望你能帮忙。 TY
答案 0 :(得分:1)
好的,在这个论点中有很多话要说,但我将是最简单的。
第一件事
php和Javascript是两种不同的编程语言,具有完全不同的范例。 第一种是back-end focused编程语言;Javascript代替更多front-end focused,仅仅为了整体而言我必须提到JS也用于后端部分,其中包含一个名为Node.js
的特殊环境回到问题,你要做的事情并非不可能,但正如你所说的那样,你的想法(如果我得到的话)就是将数据从js传递到php函数中的参数......
事实是,php在服务器之前是精心设计和重新设计的,而javascript是在客户端执行的,在客户端网页中没有更多的足迹。此链接非常好地描述了此过程:http://php.net/manual/en/intro-whatis.php可能的解决方案是:
FRONT-END(js):对你要显示的所有数据进行另一个ajax调用(请求)到你想要详细说明的所有数据。
BACK-END(php):如果已经发出请求,则控制,然后使用全局变量$_POST & $_GET
访问数据(取决于请求的类型),然后详细说明这些数据。
如果可以的话,我建议你检查你想对这些数据进行的操作是否需要在服务器端完成,而不是由js完成!
答案 1 :(得分:0)
考虑执行顺序:
当你到达7时,太晚影响第2步发生的事情。
您可以向status.php发出新的Ajax请求并在JS中处理响应,但由于status.php返回整个HTML文档,这没有用。
您可以使用while (!Serial) {
;
}
使用包含status.php的URL和包含来自Ajax响应的信息的查询字符串来加载新页面,但这会使得首先使用Ajax毫无意义。
您应该更改readDB.php以返回所有需要的数据,然后使用DOM方法(或围绕它们的jQuery包装器)来修改用户已经在查看的页面。
答案 2 :(得分:0)
最简单,最快速(也许不是最性感的方式):
respondData = data;
现在,即使ajax请求完成,您也可以从代码中的每个位置访问它。请记住,确保在页面完全加载后以及ajax处理请求后尝试访问此变量。否则你会得到'undefined'