【问题标题】:Pass JSON string via POST to PHP [closed]通过 POST 将 JSON 字符串传递给 PHP [关闭]
【发布时间】:2018-03-17 00:13:09
【问题描述】:

我有一个属于 CRUD 的页面,我可以在该页面上编辑我的数据并将其发送到我的 php 应用程序的更新操作。基本上,它是一个带有输入字段的 HTML 表单。 在这个页面上,我试图通过 jQuery 插件实现某种拖放列表排列。在对元素进行排序后,我通过 js 脚本创建了一个包含我的层次结构的数组,它看起来像这样:

[
    {
        "id": 21,
        "name": "John"
    },
    [
        {
            "id": 25,
            "name": "Bill"
        },
        {
            "id": 20,
            "name": "Ann"
        }
    ],
    {
        "id": 18,
        "name": "Sally"
    },
    {
        "id": 24,
        "name": "Tom"
    }
]

现在,我如何通过 POST 将这个数组从 javascript 传递到我的更新操作以及我的表单的其余部分,以便我可以将它以适当的 JSON 格式存储在数据库中?

【问题讨论】:

  • 我们可以看看你的代码吗?

标签: javascript php json


【解决方案1】:

选项 1

您可以创建一个包含所有数据(表单数据和分层数组)的单个 JS 对象。 之后,您可以使用 jQuery .ajax() 方法或 .post() 方法发送。

使用 jquery 查询表单输入

var formValues = {
    nameField1: $(field1Selector).val(),
    nameField2: $(field2Selector).val(),
    //(...) the remaining fields

    //variable holding your array
    arrangement: dragAndDropArray
 };

然后,您可以通过

将该请求发送到服务器
$.ajax({
    url: actionUrl,
    method: 'POST',
    data: formValues //here you're setting the payload of your POST request
});

这是documentation for the .ajax() method

选项 2

另一种选择是在表单中创建一个隐藏的输入字段,并将其值设置为 JS 数组的 JSON 字符串。

在表单中添加隐藏字段,例如

<input type="hidden" id="hierarchical-array-input" name="hierarchivalArr" />

然后,每次更新数组时,您都希望像这样设置隐藏输入的值:

$('#hierarchical-array-input').val(JSON.stringify(hierarchicalArr));

在这两种情况下,您都需要处理 PHP 中的值。我建议你试一试并调试 PHP 是如何解析数据的。

注意

您也可以将第一种方法与插件一起使用,该插件会查询表单并为您生成 JS 对象。喜欢,

jquery form serialize JSON

【讨论】:

  • 看起来选项 2 是我正在寻找的。谢谢,我试试看。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-28
  • 2015-04-02
  • 1970-01-01
  • 2014-03-15
相关资源
最近更新 更多