将JavaScript数组传递给表单/ $_POST,无需ajax

6

我正在开发一个表单上传元素,可以在Zend Framework表单中使用。我试图使程序员能够在任何项目中使用它,而不必手动配置任何设置。

文件由AJAX上传器上传,返回JSON数据:

[
  {
      "name":"image.png",
      "size":42410,
      "type":"image\/png",
      "url":"http:\/\/example.com\/image.png",
      "thumbnail_url":"http:\/\/example.com\/thumbnail\/image.png",
   }
]

由于上传器本身就是一个表单元素,所以我正在尝试将该数据放入表单中,以便在提交时可以从 $_POST 中检索到这些值。我使用 JavaScript 添加了命名为 uploader-data[] 的隐藏输入字段(在提交表单时),但这只允许我一次传递 1 个变量到隐藏字段。
因此,我的问题是:“如何将整个数组/对象传递给 $_POST / 表单?”即使我正在使用 AJAX 进行上传器本身,我也不想使用它来提交表单。我希望进行常规的表单提交,其中包含来自 JSON 对象/数组的所有数据。文件本身已经上传,但我可能想在数据库或其他地方使用 JSON 数据。
是否可能像这样做?
提前感谢您。
1个回答

6

使用JSON.stringify将Javascript值放入输入字段中:

data = [
  {
      "name":"image.png",
      "size":42410,
      "type":"image\/png",
      "url":"http:\/\/example.com\/image.png",
      "thumbnail_url":"http:\/\/example.com\/thumbnail\/image.png",
   }
]
document.getElementById('my_hidden_input').value = JSON.stringify(data);

这将使您的数组变为以下文本值:
[{"name":"image.png","size":42410,"type":"image/png","url":"http://example.com/image.png","thumbnail_url":"http://example.com/thumbnail/image.png"}]

Zend可以将JSON值解析为PHP数组。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接