0

如何将文件输入类型与复选框链接?

这是我到目前为止所拥有的:

<input type="file" name="file_upload[0]"  /> <input type="checkbox" name="checkbox[0]"> checkbox 1 <br />
<input type="file" name="file_upload[1]"  /> <input type="checkbox" name="checkbox[1]"> checkbox 2 <br />
<input type="file" name="file_upload[2]"  /> <input type="checkbox" name="checkbox[2]"> checkbox 3 <br />
<input type="file" name="file_upload[3]"  /> <input type="checkbox" name="checkbox[3]"> checkbox 4 <br />

现在我需要在上传文件时检查 PHP 对应的复选框已选中(最好使用循环),但我无法使其工作。

这就是我在 PHP 中所拥有的:

if (isset($_FILES['file_upload[1]']) && isset($_FILES['checkbox[1]']))  {
    //do something
} else {
    //do something else
}
4

2 回答 2

6

您需要将您的复选框输入标签更改为 <input type="checkbox" name="checkbox[3]" value="1" >

即你需要添加缺失的value=""属性

正如评论中提到的

你需要if(isset($_POST['checkbox'][0])) { 检查$_FILES

尝试打印两者print_r($_FILES) and print_r($_POST)...这应该让您了解提交后收到的数据结构

您可以遍历 file_uploaded 数组,然后检查是否设置了相关的复选框索引。

于 2012-08-22T12:30:50.520 回答
1

你需要的循环应该是这样组织的:'对于$_FILES['file_upload']数组的每个元素,检查对应的(具有相同索引的)元素$_POST['checkbox']。例如:

if (empty($_FILES['file_upload'])) { ... process 'no files sent' case ... }

$files_total = count($_FILES['file_upload']);

for ($i = 0; $i < $files_total; ++$i) {
  if ( $_FILES['file_upload'][$i] && !empty( $_POST['checkbox'][$i] ) ) {
    // .. do something
  }
  else {
    // .. do something else
  }
}
于 2012-08-22T12:37:01.337 回答