php - 发布带有 $_POST 和 $_FILES 变量顺序的表单
问题描述
我想发布一个包含输入和文件的表单,并按照我在表单中的相同顺序在目标页面中检索,例如:
<form id="form" method="post" action="">
Description file: <input type="text" name="input-1" value="description 1">
<br>
File: <input type="file" name="input-2">
<br>
<br>
Others data: <input type="text" name="input-3" value="some others unique data">
<br>
Description file: <input type="text" name="input-4" value="description 2">
<br>
File: <input type="file" name="input-5">
<br>
Description file: <input type="text" name="input-6" value="description 3">
<br>
File: <input type="file" name="input-7">
<br>
</form>
<?php
$post = $_POST;
$files = $_FILES;
foreach ( $post as $i => $value ) {
echo "Variables passed: " . $value . "<br>";
}
foreach ( $files as $i => $value ) {
echo "File: " . $value['name'] . "<br>";
}
?>
我想要这样的输出:
Variables passed: description 1
File: file1.jpg
Variables passed: some others unique data
Variables passed: description 2
File: file2.jpg
Variables passed: description 3
File: file3.jpg
但我明白了,因为我有 2 个不同的 foreach:
Variables passed: description 1
Variables passed: some others unique data
Variables passed: description 2
Variables passed: description 3
File: file1.jpg
File: file2.jpg
File: file3.jpg
这只是一个简单的例子。我有一个动态表单,我可以在其中使用按钮以不同的顺序添加输入字段。
有没有办法保持与目标页面相同的订单?
更新:我已经编辑了我的原始帖子:输入字段文本之后总是有一个文件输入不是一个规则。
更新 2:当我单击添加按钮以插入新输入时,会自动从 mysql db 检索name
类似input-1, input-2, input-3, input-4, ...
内容。因此它们可以按不同的顺序排列,例如:输入 1、输入 3、输入 2、输入 4 ......
解决方案
假设文件总是伴随着描述,描述总是伴随着文件(您需要对此进行验证)。像这样的事情应该指向正确的方向:
<form id="form" method="post" action="">
Description file: <input type="text" name="input-1" value="description 1">
<br>
File: <input type="file" name="file-2">
<br>
Description file: <input type="text" name="input-3" value="description 2">
<br>
File: <input type="file" name="file-4">
<br>
Description file: <input type="text" name="input-5" value="description 3">
<br>
File: <input type="file" name="file-6">
<br>
</form>
<?php
$post = $_POST;
$files = $_FILES;
foreach ( $post as $i => $value ) {
echo "Description: " . $value . "<br>";
echo "File: " . $files[$i]['name'] . "<br>";
}
?>
推荐阅读
- html - How to add a line as a pseudo element when using flex-box
- scala - Move files between hdfs directories as aprt of spark scala application
- unit-testing - 业力日志级别值
- mysql - MySQL 查询优化 - 加速|索引使用
- tsql - 组合表变量的更新
- coq - QuickChick 不起作用
- c++ - 没有可用于 std::unique_ptr 的适当默认构造函数
std::unordered_map 内部 - origen-sdk - 如何根据封装处理不同的引脚名称
- python - 从 csv DataFrame 行中删除 nltk 停用词
- javascript - 没有值的 LitElement 渲染模板