javascript - 将使用 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 页面
解决方案
如果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 +'">');
});
推荐阅读
- python - AWS Elastic Beanstalk 运行状况检查问题
- php - Twilio Gather 对 AWS S3 上托管的 PHP 的操作未执行
- angular - Angular Pipe 未使用参数正确转换数据
- android - Android Studio 总是要求下载系统镜像
- ios - 如何自定义 UINavigationBar 的过渡动画
- javascript - Vanilla js-游戏未运行
- java - Java 8 lamada Stream:如何获取属性子集?
- sql - 在 LINQPad 上运行但在 VS 上运行的查询返回 NullReference 错误
- c - 数独游戏:如何测试包含读取二进制文件的代码
- flask - JSONAPI:更新关系,包括属性