对于文件管理,我正在使用var $dir
,该文件向我显示了文件夹的路径。
我的网址字符串如下所示:
www.example.com/index.php?dir=uploads/folder1
下面是我如何导航的路径:
$MainFolderName = 'uploads';
$dir = $MainFolderName;
/* Read actual dir from url */
$actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$strArr = explode("=",$actual_link);
$CurrentPath = $strArr[1];
// if new folder is created
if(isset($_GET['dir'])) {
$dir = $CurrentPath;
}
要导航,我使用如下所示的锚点:
foreach ($files as $file) {
.........
if(is_dir($dir.'/'.$file)) {
$folderanchor = "<a class='folderanchor' href='?dir=".$dir.'/'.$file."'><i class='fas fa-folder'></i>$file</a>";
echo $folderanchor;
因此,像这样进行导航总是可以完整加载页面。
如何使用ajax进行导航,以便动态加载?
我知道它与GET
有关,但是我不知道该如何处理...
顺便说一句:使用
读取文件夹中的所有文件和目录// exclude dot, double dot and tmp folder
$files = array_diff( scandir($dir), array(".", "..", "tmp") );
答案 0 :(得分:0)
也许在第一页上,您可以添加以下脚本
<script type="text/javascript">
//on page 1.php
$("body").on('click','a', function(event) {
event.preventDefault();
//Here add script to catch the url
//catching the text
var link= $(this).text;
$.post('anotherpage.php', {url:url}, function(data, textStatus, xhr) {
//Hide the other div container
$("#con").remove();
//append the new response
$("body").append(data);
});
});
</script>
应该在anotherpage.php上放
if(isset($_GET['dir'])) {
$dir = $CurrentPath;
foreach ($files as $file) {
.........
if(is_dir($dir.'/'.$file)) {
$folderanchor = "<a class='folderanchor' href='?dir=".$dir.'/'.$file."'><i class='fas fa-folder'></i>$file</a>";
echo $folderanchor;
}
您可能会遇到错误,但是我试图给一个开始.....欢呼
答案 1 :(得分:0)
您只能使用php来实现;没有页面加载!
将锚点更改为表单。
给表单一个隐藏的输入字段,其值为:$dir.'/'.$file
将此值写入外部文件,可以说:dir.php
下一步:从extern文件中读取值并将其绑定到var $dir
您的表单而不是锚点:
<form method="post" action="">
<input type="hidden" name="writedir" value="<?php echo $dir.'/'.$file; ?>" />
<button type="submit" class="submitanchor" name="submit_dir"><?php echo $file; ?></button>
</form>
写给dir.php
if($_POST['writedir']) {
// write dir to file
$write_to_dir = fopen("dir.php", "w") or die("Unable to open file!");
$txt = $_POST['writedir'];
fwrite($write_to_dir, $txt);
fclose($write_to_dir);
}
现在从dir.php
中读取值并将其绑定到var $dir
;
// read dir from file
$readdir = fopen("dir.php", "r") or die("Unable to open file!");
$dir = fread($readdir,filesize("dir.php"));
fclose($readdir);
发生了什么:每次单击提交,它都会(隐藏)将隐藏值写入dir.php
,然后立即读取该值并将其绑定到var $dir
如果正确,您将看到内容的“平滑”变化而无需页面加载
额外:对按钮进行样式设置,使其看起来像锚一样
button.submitanchor {
color: #whateveryouwant;
border: none;
cursor: pointer;
background-color: transparent;
}