首页 > 解决方案 > 将使用 javascript 创建的 JSON.stringify 提交到 PHP 中的页面

问题描述

在我的页面中,我有一个 jquery 插件,它创建了一个result使用此规则创建的变量:

var result = JSON.stringify(params, null, 2)

在哪里params(来自 Firefox 控制台):Array [ "test" ]

于是result变成了:

[
  "test"
]

然后我在提交之前将其附加到表单中:

form.append('<input type="hidden" name="result" value="' + result + '">');

如果我尝试在 PHP 目标页面中,var_dump($_POST['result'])我总是NULL

可能不是有效的 JSON?

我也试过这个:

 form.append('<input type="hidden" name="result" value="' + encodeURIComponent(result) + '">');

 var_dump(json_decode($_POST['result']))

但仍然没有得到一个有效的数组到 PHP 页面

标签: javascriptphparrays

解决方案


如果params你只有普通的数组,这可以帮助你:

params.forEach((val) => {
    form.append('<input type="hidden" name="result[]" value="' + val +'">');
});

您将拥有很少的 hidden<input>并且能够在服务器端将它们作为数组接收。

笔记。在这里,我使用“箭头函数”语法,如果需要,将您的代码调整为以下内容:

params.forEach(function(val) {
    form.append('<input type="text" name="result[]" value="' + val +'">');
});

推荐阅读