2012-05-30 45 views
0

我需要为我正在工作的网站制作下拉菜单,并且在该下拉列表中我想列出目录中的所有文件,但由于缺乏Web开发知识,我正在努力工作很少能够弄清楚。下拉菜单列表文件夹

任何帮助将不胜感激!

编辑

<form> 
<select name="menu"> 
<option value="http://www.msn.com/">MSN</option> 
<option value="http://www.google.com/">Google</option> 
</select> 
<input type="button" onClick="location=this.form.menu.options[this.form.menu.selectedIndex].value;" value="GO"> 
</form> 

这是对在何种程度上我知道如何使一个下拉菜单

+0

http://www.lateralcode.com/directory-trees-with-php-and-jquery/ – magicianiam

+0

告诉我们你已经试过的东西,特别是什么不起作用。 – Joel

+1

你有任何相关的标记发布与您的问题?你用什么来呈现下拉?即'jQuery' – Zuul

回答

5

看看PHP的scandir功能。循环播放结果并回显您的HTML代码,每循环迭代一个<option>标记。

事情是这样的:

echo "<select name='files'>"; 
$files = array_map("htmlspecialchars", scandir("path/to/your/files")); 
foreach ($files as $file) 
    echo "<option value='$file'>$file</option>"; 
echo "</select>"; 
+0

完美工作了解了很多关闭这个以及不知道我可以只是回声的PHP到这样的HTML(我很新的网页开发),谢谢一吨,但! – user577732

+0

@ user577732:是的,有一点需要记住的是PHP执行服务器端。这意味着PHP在浏览器获取任何文本之前完全执行。 HTML和Javascript在客户端被解释。所以你可以使用PHP来生成Javascript和HTML代码。一旦你掌握了这个概念,你对自己能做什么和不能做什么的想法就会变得更加清晰。 – Travesty3

+0

是的,我工作了很多今天学到了很多,我来自java,我发现很多java和php之间的相似之处,所以学习很快 – user577732

0

你可以做这样的事情:

<select> 
<?php 
    $source_dir = '/var/www/whatever'; 
    $dir_handle = opendir($source_dir); 
    foreach (glob('*', GLOB_ONLYDIR) as $dir_name) { 
?> 
    <option value="<?= htmlentities($dir_name) ?>"> 
    <?= htmlentities($dir_name) ?> 
    </option> 
<?php } ?> 
</select> 

如果要排序,过滤,或什么的,只是操作,但是你想通过glob()返回的数组。或者,您可以使用readdir()来电,然后使用is_dir()来电。有很多不同的方法可以做到这一点,它可以归结为您的具体需求。