将javascript数组传递给没有ajax的表单/ $ _POST

Ili*_*ans 6 javascript forms post zend-framework

我正在开发一个可以在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",
   }
]
Run Code Online (Sandbox Code Playgroud)

由于上传器本身是一个表单元素,我试图将这些数据放在提交表单中,因此可以从$ _POST中检索值.我添加了名为uploader-data []的javascript的隐藏输入字段(在提交表单时),但这只允许我将1个变量传递给隐藏字段.

所以我想我的问题是:"我如何将整个数组/对象传递给$ _POST /表单?".即使我使用AJAX作为上传者本身,我也不想用它来提交表单.我想要一个包含JSON对象/数组中所有数据的常规表单提交.文件本身已经上传,但我可能想在我的数据库或其他地方使用JSON数据.

可以这样做吗?

提前致谢.

jan*_*mon 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);
Run Code Online (Sandbox Code Playgroud)

这将使您的数组变为以下文本值:

[{"name":"image.png","size":42410,"type":"image/png","url":"http://example.com/image.png","thumbnail_url":"http://example.com/thumbnail/image.png"}]
Run Code Online (Sandbox Code Playgroud)

Zend可以将JSON值解析为php数组.