Php,循环后重新加载页面

时间:2015-09-26 06:22:40

标签: php delete-file

我有一个页面,列出服务器文件夹中的所有文件,每个文件都有一个复选框。它工作正常,除了最后3行代码,我希望它重新加载整个页面。在下面的例子中,它将它抛入无休止的刷新。如果我将echo向上移动到if语句,它可以工作,但只删除其中一个已检查的列表项。我需要它删除所有选中的项目,然后重新加载页面。请协助。

<form id="delete" action="" method="POST">
<?php
    $files = array();
    $dir = opendir('.');
    while(false != ($file = readdir($dir))) {
        if(($file != ".") and ($file != "..") and ($file != "download-ui.php") and ($file != "delete.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.'"/>
            <a href="download-ui.php?name='.$folderName."/".$file.'" style="cursor: pointer;">'.$file.'</a>
        </div>
        <br />
    </li>';
    }

?>

<button type="submit" form="delete" value="Submit">Delete File/s</button>
</form></div>


<?php
if(isset($_POST['Submit']))
{
}      
  foreach ($_POST['select'] as $file) {

    if(file_exists($file)) {
      unlink($file); 
     }
     elseif(is_dir($file)) {
           rmdir($file);
     }
  }
echo '<META HTTP-EQUIV="Refresh" Content="0; URL='.$location.'">';
exit;
?>

1 个答案:

答案 0 :(得分:1)

在呈现到页面之前,将所有处理代码放在页面顶部。那你就不应该刷新了。它将处理您的删除,然后根据剩余部分加载页面的其余部分。

<?php
if(isset($_POST['Submit'])){
    foreach ($_POST['select'] as $file) {
        if(file_exists($file))
            unlink($file); 
        elseif(is_dir($file))
            rmdir($file);
    }
}

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

natcasesort($files);
?>
<form id="delete" action="" method="POST">
<?php
foreach ($files as $file) {
echo '<li class="browse-file">
        <div class="select-all-col"><input name="select[]" type="checkbox" class="select" value="'.$file.'"/>
        <a href="download-ui.php?name='.$folderName."/".$file.'" style="cursor: pointer;">'.$file.'</a></div>
        <br />
    </li>';
    }
?>
<button type="submit" form="delete" value="Submit">Delete File/s</button>
</form></div>