【问题标题】:How to find Order of submitted input in $_Post when the html form includes file input当 html 表单包含文件输入时,如何在 $_Post 中查找提交输入的顺序
【发布时间】:2014-11-14 11:45:13
【问题描述】:

我有一个标准的 HTML 表单,其中 jquery 创建了更多元素。

名称为“text[]”的文本

名称为“text[]”的文本

名称为“images[]”的图像

名称为“text[]”的文本

用户可以使用 Jquery 和唯一的增量 ID 添加更多图像或文本字段。

我正在使用 $_Post 提交表单。

我想按如下方式处理这些数据:

按顺序连接 ->

$_Post[文本[1]].$_Post[文本[2]]。 [处理文件$_File[image1]并返回url.$_Post[text[3]].....

当表单只有文本时,我可以做到这一点,但是文件输入对提交数据的排序造成了很大的问题。

我不知道之前的顺序,因为预计用户会随意使用 Jquery 来“添加图像”或“添加文本”。

我如何在 PHP 中处理这个。

在此先感谢,请使用循环示例进行回复。

注意:是单图上传。

【问题讨论】:

  • 你到底想做什么?将二进制图像数据与您的文本输入一起放入一个字符串?请详细说明你想做什么并提供更完整的代码,那只是废话

标签: php file-upload http-post


【解决方案1】:

对于使用 images[] 这种类型,您使用数组使用 post 方法发布数据

如此简单的使用 foreach 循环使用 $_POST 检索该数据 如果不了解它的结构,请使用

var_dump($_POST);

展示结构

【讨论】:

  • var_dump($_POST) 显示附件的空字符串,它确实显示了提交表单的顺序,但我不知道如何遍历它。循环 ($_POST) 不显示图像而 $_Files 不显示文本,如何使用 var_dump 信息?
  • 使用 echo "
    ";打印($_REQUEST);打印($_FILES);如果您在此获得价值,那么您可以获得所有价值
【解决方案2】:

您可以检查 $_POST 是否包含图像和文本数组, 示例:

if(isset($_POST['text'])){
  foreach($_POST['text'] as $text){
   // You can get each element here in $text
  }
}

图像字段相同

if(isset($_FILES['images'])){
  foreach($_FILES['images'] as $images){
    // You can get each element here in $images
  }
}

【讨论】:

  • isset($_POST['images']) 不起作用并且不显示任何内容。图像由 $_FILES[] 单独处理。不过谢谢你的回答
  • 我知道如果是文件,在你的问题中你只是提到了 name ="images[]" ?
  • 已更新,立即查看 :)
猜你喜欢
  • 2017-02-24
  • 2011-08-01
  • 1970-01-01
  • 2015-11-11
  • 1970-01-01
  • 1970-01-01
  • 2011-04-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多