Javascript 与 PHP 动态通信

标签 javascript php html mysql

我正在创建一个系统,其中 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/

相关文章:

javascript - Node - 多个 json 文件到 API

javascript - 在 ReactJS 中构建响应式页脚

php - 在magento 2中循环集合时创建关联数组

javascript - jquery显示和隐藏div

html - 我想在 Django View 中创建多个上下文对象

javascript - 使用 JavaScript 触发 CSS 转换

javascript - jQuery Treeview 插件的“全部折叠”问题

php - 比较表中同一列的不同行

php - 使用 PHP-MySQL 从 PK 更新 FK

php - 为什么 php gettype 函数总是从 $_POST[$var] 返回字符串?