我正在创建一个系统,其中 Javascript 脚本从 Sage 提取中提取数据,并将其存储在 Javascript 对象(我猜是 JSON)中。然后我需要通过 PHP 将数据上传到 SQL 数据库。
我曾想过使用 Iframe,通过将 src 更改为 PHP 页面 URL,然后通过 url 将 GET 变量传递到页面。我想知道我是否真的可以使用标签来做到这一点?通过创建新图像并将 src 设置为 PHP 页面 URL(再次将 GET 变量传递给它),那么 PHP 页面可以完成剩下的工作吗?我知道图像不会显示任何内容,也不需要。我只需要一种将数据传递到 PHP 页面的方法。
最佳实践?
最佳答案
使用JavaScript与服务器通信的现代方式是 XMLHttpRequest 。默认情况下,它是异步的,并且确实为您提供了更改此设置的选项,尽管同步请求可能被认为是不好的做法。
这是一个基本示例
function sendObject(object, uri, callback) {
var xhr = new XMLHttpRequest(),
data = new FormData();
data.append('object', JSON.stringify(object));
if (callback) xhr.addEventListener('load', callback);
xhr.open('POST', uri);
xhr.send(data);
}
// ex. usage
sendObject(
{foo: "bar"},
"/somepage.php",
function () {console.log('completed with code:', this.status)}
);
使用 FormData也可以为您节省一点时间。如果您不能期望它可用,只需这样做
postData = encodeURIComponent(key) + '=' + encodeURIComponent(value) + '&' + etc;
关于Javascript 与 PHP 动态通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22639125/