2015-09-25 83 views
-1

我有download-ui.php这个代码,它排除了一些并列出目录中的所有其他文件,然后对它们进行排序并给出每个复选框。目录中的PHP列表文件,并带有删除选项

<?php 
    $files = array(); 
    $dir = opendir('.'); 
    while(false != ($file = readdir($dir))) { 
     if(($file != ".") and ($file != "..") and ($file != "download-ui.php") and ($file != "error_log") and ($file != "favicon.ico")) { 
       $files[] = $file; 
     } 
    } 

    natcasesort($files); 

    foreach ($files as $file) { 
     echo '<li class="browse-file"> 
      <div class="select-all-col"><input name="select[]" type="checkbox" class="select" value="'.$file.'"/></div> 
      <div class="file-name-col"><a href="download-ui.php?name='.$folderName."/".$file.'" style="cursor: pointer;">'.$file.'</a></div> 
      <br /> 
     </li>'; 
    } 
?> 

我试图找出如何再拿到复选框值,因此,如果检查这些文件可以使用unlink()被删除。

我知道我需要一个表单,但需要协助语法和捕获表单的值,这是我迄今为止。

<form id="delete" action="delete.php" method="post"> 
    <button type="submit" form="delete" value="Submit">Submit</button> 
    <input name="select[]" type="checkbox" class="select" value="'.$file.'"/> 
</form> 

那么对于delete.php我有

<?php? 
    foreach ($_post['select[]'] as $file) { 
     if(file_exists($file)) { 
      unlink($file); 
     } 
     elseif(is_dir($file)) { 
      rmdir($file); 
     } 
    } 
    echo "Files deleted successfully."; 
?> 

我想我的问题是delete.php

输入 <input name="select[]" type="checkbox" class="select" value="'.$file.'"/>

我这个最新努力得到的错误是PHP Warning: Invalid argument supplied for foreach()

+1

-1的任何解释?如果我不知道问题是什么,不能解决问题 – Kilisi

+0

我不确定谁低估了你,但可能是因为你没有说明你有什么问题。 – kojow7

+0

另外,你检查了PHP日志,看看哪里出现错误? – kojow7

回答

1

你想遍历$ _POST ['select']的每个项目,所以你的foreach应该说:

foreach ($_POST['select'] as $file) { 

} 

请注意,POST大写并且select没有数组括号。

+0

没有那个运气,得到了同样的错误为delete.php中的foreach()提供的无效参数。我想知道,如果这是我的表格,这个问题 – Kilisi

+1

得到解决,愚蠢的错误,欢呼 – Kilisi