Javascript 装束,装束。或“或”“到处都是。我让它作为下拉列表之外的文件列表工作,但无法在内部工作。我认为您需要澄清单击的含义-默认情况下,s是可选的。您是否希望在不等待表单发送的情况下立即发生某些事情?你想用创建一个下拉菜单吗?我的帖子有点乱。我希望下拉菜单中只填充
Javascript 装束,装束。或“或”“到处都是。我让它作为下拉列表之外的文件列表工作,但无法在内部工作。我认为您需要澄清单击的含义-默认情况下,s是可选的。您是否希望在不等待表单发送的情况下立即发生某些事情?你想用创建一个下拉菜单吗?我的帖子有点乱。我希望下拉菜单中只填充,javascript,php,ajax,drop-down-menu,server-side,Javascript,Php,Ajax,Drop Down Menu,Server Side,装束,装束。或“或”“到处都是。我让它作为下拉列表之外的文件列表工作,但无法在内部工作。我认为您需要澄清单击的含义-默认情况下,s是可选的。您是否希望在不等待表单发送的情况下立即发生某些事情?你想用创建一个下拉菜单吗?我的帖子有点乱。我希望下拉菜单中只填充上传文件夹中的jpg文件。这些需要是可点击的链接。理想情况下,它不会像现在这样显示文件夹,例如链接到./和../它会填充文件名,但没有href,因此不可单击。如果这是可能的话。因此,在下拉列表中选择一个项目将打开jpeg文件。有可能,您必须形成
装束,装束。或“或”“到处都是。我让它作为下拉列表之外的文件列表工作,但无法在内部工作。我认为您需要澄清单击的含义-默认情况下,
s是可选的。您是否希望在不等待表单发送的情况下立即发生某些事情?你想用
创建一个下拉菜单吗?我的帖子有点乱。我希望下拉菜单中只填充上传文件夹中的jpg文件。这些需要是可点击的链接。理想情况下,它不会像现在这样显示文件夹,例如链接到./和../它会填充文件名,但没有href,因此不可单击。如果这是可能的话。因此,在下拉列表中选择一个项目将打开jpeg文件。有可能,您必须形成“不真正提交”,运行一些JavaScript,获取
s值并将您重定向到该位置。但是,有比使用JS和
菜单:)更好的方法,如果你想要前者的例子,那么我可以写一个答案。好的,谢谢。我当时在看JavaScript,但认为它是客户端的,所以认为它无法获取服务器上的文件列表。我以为我的php代码就快到了(可能缺少正确的格式,这里和那里都有一个.或'或')。我让它作为一个下拉列表之外的文件列表工作,但无法在内部工作。非常感谢。在我的测试页面上工作很好。太棒了:)只需将它集成到实时页面中。我将php的第一行更改为$files=array_slice(scandir('upload/'),2);删除./和../目录。我可能只需要一件事。文件名分布在两行上。我如何使它适合一行。啊,我刚刚注意到它不会像javascript那样动态更新,我想?)。我必须刷新页面可能使。下拉内容具有最小宽度属性te,或设置空白
属性。正确,它只会在页面加载时重新加载数据。要使其动态刷新,这将是设置AJAX的一个完全独立的元素,设置AJAX以联系一个PHP小页面,该页面提供一个JSON文件列表,以返回JavaScript,并在鼠标悬停触发时运行此AJAXtener-稍微复杂一点。我认为这超出了当前问题的范围,如果您编辑问题以包含这一点,或者制作一个新的问题,我可以提供一个答案。我现在可以解决这个问题。最后很简单,但必须有人让我走上正确的道路。代码中缺少ajax调用,因此我添加了它,如果一切正常的话。还必须在第一个函数中添加一个(e)。非常感谢您提供的代码。现在,我只需要解决如何修剪循环,使其不会在列表中显示文件名的扩展名部分。如何将其放入现有代码中(到目前为止,我的工作几乎没有成功):修剪($file,'.jpg'));非常感谢。在我的测试页面上非常有用。太棒了:)只需将它集成到实时页面中即可。我将php的第一行更改为$files=array_slice(scandir('upload/),2);删除./和../目录。我可能只需要一件事。文件名分布在两行上。我如何使它适合一行。啊,我刚刚注意到它不会像javascript那样动态更新,我想?)。我必须刷新页面可能使。下拉内容具有最小宽度属性te,或设置空白
属性。正确,它只会在页面加载时重新加载数据。要使其动态刷新,这将是设置AJAX的一个完全独立的元素,设置AJAX以联系一个PHP小页面,该页面提供一个JSON文件列表,以返回JavaScript,并在鼠标悬停触发时运行此AJAXtener-稍微复杂一点。我认为这超出了当前问题的范围,如果您编辑问题以包含这一点,或者制作一个新的问题,我可以提供一个答案。我现在可以解决这个问题。最后很简单,但必须有人让我走上正确的道路。代码中缺少ajax调用,因此我添加了它,如果一切正常的话。还必须在第一个函数中添加一个(e)。非常感谢代码。现在我只需要解决如何修剪循环,使其不会在列表中显示文件名的扩展名部分。如何将其放入现有代码中(我目前正在处理它,但几乎没有成功):修剪($file,.jpg');
<?php
$files = scandir('upload/');
sort($files);
echo "<select>";
foreach($files as $file){
//echo'<a href="upload/'.$file.'">'.$file.'</a>'";
echo "<option value=' $file'> $file </option>";
}
echo "</select>";
?>
/* The container <div> - needed to position the dropdown content */
.dropdown {
position: relative;
display: inline-block;
}
/* Dropdown Content (Hidden by Default) */
.dropdown-content {
display: none;
position: absolute;
background-color: #ECF0F1;
box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
z-index: 1;
white-space: nowrap;
}
/* Links inside the dropdown */
.dropdown-content a {
color: black;
padding: 12px 16px;
text-decoration: none;
display: block;
}
/* Change color of dropdown links on hover */
.dropdown-content a:hover {background-color: #ddd;}
/* Show the dropdown menu on hover */
.dropdown:hover .dropdown-content {display: block;}
<div class="dropdown">
<button class="dropbtn" id="file-browser">Latest Timesheet</button>
<div class="dropdown-content" id="file-list">
<?php
$files = array_slice(scandir('upload/'), 2);
rsort($files);
foreach ($files as $file) {
$file = pathinfo($file)['filename'];
echo "<a href='upload/$file'>$file</a>";
}
?>
</div>
</div>
<script>
$("#file-browser").hover(
function (e) {
$.ajax({
url: "my_dropdown_data.php",
dataType: "json",
success: function(response) {
$("#file-list").html(""); //Clear current file list
response.forEach(
function(file) {
$("#file-list").append("<a href='upload/" + file + "'>" + file.substr(0, file.length - 4) + "</a>");
}
);
},
error: function(response) {
console.log(response);
}
})
}
);
</script>
<?php
$files = array_slice(scandir('upload/'), 2);
rsort($files);
echo json_encode($files);
?>
<div class="dropdown">
<button class="dropbtn" id="file-browser">Dropdown Menu ACTIVATE</button>
<div class="dropdown-content" id="file-list">
</div>
</div>
<div class="dropdown">
<button class="dropbtn">Dropdown Menu ACTIVATE</button>
<div class="dropdown-content">
<?php
$files = scandir('upload/');
sort($files);
foreach ($files as $file)
echo "<a href='upload/$file'>$file</a>";
?>
</div>
</div>
.dropdown {
position: relative;
display: inline-block;
}
.dropdown-content {
display: none;
position: absolute;
z-index: 1;
}
.dropdown-content a {
display: block;
}
.dropdown:hover .dropdown-content {
display: block;
}
$("#file-browser").hover(
function {
}
);
$("#file-browser").hover(
function {
url: "my_dropdown_data.php",
dataType: "json",
success: function(response) {
},
error: function(response) {
console.log(response);
}
}
);
<?php
$files = scandir('upload/');
sort($files);
echo json_encode($files);
?>
$("#file-browser").hover(
function {
url: "my_dropdown_data.php",
dataType: "json",
success: function(response) {
$("#file-list").html(""); //Clear current file list
response.forEach(
function(file) {
$("#file-list").append("<a href='upload/" + file + "'>" + file + "</a>");
}
);
},
error: function(response) {
console.log(response);
}
}
);