如何将文件输入类型与复选框链接?
这是我到目前为止所做的:
<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
}
答案 0 :(得分: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数组,然后检查是否设置了相关的checbox索引。
答案 1 :(得分: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
}
}