2015-09-26 4 views
2

У меня есть страница, в которой перечислены все файлы в папке сервера с флажком. Он отлично работает, за исключением последних трех строк кода, где я хочу, чтобы он перезагрузил всю страницу. В приведенном ниже примере он превращает его в бесконечное обновление. Если я переместил echo в оператор if, он будет работать, но только удалит один из элементов списка. Мне нужно удалить все отмеченные элементы, а затем перезагрузить страницу. Пожалуйста помогите.Php, перезагрузите страницу после цикла

<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; 
?> 
+0

вы закрыты если() перед тем, как сделать ставку. убедитесь, что –

+0

Поместите весь код обработки вверху страницы, прежде чем он отобразится на странице. Тогда вам не нужно обновлять .... если у вас нет какой-то особой цели для обновления, как это ... ?? – Rasclatt

+0

@Rasclatt Мне нужно его обновить, чтобы он снова показывал список, без удаления элементов, поэтому они могут либо выбрать больше элементов для удаления или загрузки оставшихся файлов. Я переведу код и посмотрю, что получится – Kilisi

ответ

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> 
Смежные вопросы