【问题标题】:Passing a javascript array to a form / $_POST without ajax将 javascript 数组传递给表单 / $_POST 没有 ajax
【发布时间】:2023-03-28 10:09:01
【问题描述】:

我正在开发一个可以在 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 中检索值。 我正在使用名为 uploader-data[] 的 javascript 添加隐藏输入字段(提交表单时),但这仅允许我当时将 1 个变量传递给隐藏字段。

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

有可能做这样的事情吗?

提前致谢。

【问题讨论】:

    标签: javascript forms zend-framework post


    【解决方案1】:

    使用 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 数组。

    【讨论】:

      猜你喜欢
      • 2020-01-25
      • 2015-03-01
      • 2020-05-10
      • 1970-01-01
      • 2014-06-21
      • 2021-02-10
      • 1970-01-01
      • 2021-06-30
      • 2016-09-20
      相关资源
      最近更新 更多