Php,循环后重新加载页面
Php, reload page after loop
我有一个页面列出了服务器文件夹中的所有文件,每个文件都有一个复选框。除了我希望它重新加载整个页面的最后 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;
?>
在呈现到页面之前将所有处理代码放在页面顶部。那么你不应该需要刷新。它将处理您的删除,然后根据剩余的内容加载页面的其余部分。
<?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>
我有一个页面列出了服务器文件夹中的所有文件,每个文件都有一个复选框。除了我希望它重新加载整个页面的最后 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;
?>
在呈现到页面之前将所有处理代码放在页面顶部。那么你不应该需要刷新。它将处理您的删除,然后根据剩余的内容加载页面的其余部分。
<?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>