下拉动态列表与文件


PHP - Dropdown dynamic list with files

情况是这样的:我有4个文件夹,每个文件夹里面都有一堆文件。

我在Php文件操作工作。我想,创建一个动态的形式,一旦被选中的文件夹,以填补与该文件夹内的文件列表的另一个下拉列表。

这是表单的第一部分,用户可以在这里选择一个文件夹:

<select name="origin">
    <option value="folder">Folder</option>
    <option value="folder2">Folder2</option>
    <option value="folder3">Folder3</option>
    <option value="folder4">Folder4</option>
</select>

如何创建另一个下拉列表?

非常感谢!

您需要两件事:

    PHP文件,它将输出文件列表jQuery代码显示结果使用AJAX

试试这个,请随时问我解释:

    PHP代码:命名为

listfiles.php

$dir = $_GET["dir"];
$files = scandir($dir);
// Prepare the select box to echo
echo "<select name='"files'">";
foreach ($files as $file)
{
// Return files only
if ( is_file($dir. $file) )
echo "<option value='"$file'">$file</option>";
}
echo "</select>";
    jQuery代码可以用于任何文件,只需创建一个新的html或php文件与此代码:

listfiles.html

<select id="folder" name="origin">
<option value="C:'">C:'</option>
<option value="D:'">D:'</option>
</select>
<div id="files"></div>
<script type="text/javascript">
$(document).ready(function()
{   
    //Bind a change event to the folder selector
    $("#folder").change(function()
    {
        var dir = $(this).val();
        $.get("listfiles.php", {"dir":dir}, function(response){
            //Show the files
            $("#files").html(response);
        });
    });
});
</script>

为使脚本工作,文件夹的选择框中应提供完整且有效的文件夹名称

使用jQuery(或者只是普通的javascript,如果你愿意),你可以绑定一个函数到下拉菜单上的更改事件。然后使用AJAX调用服务器上的一个文件,并返回一个包含所有文件的JSON格式字符串,并由此创建一个下拉列表。要获取所有文件,可以使用PHP函数scandir.

这个过程需要四个步骤:

  1. 当选择一个值时,通过AJAX将文件夹名称提交给PHP脚本。
  2. 扫描目录中的文件,并将列表作为JSON响应返回
  3. 用Javascript创建一个新的<select>
  4. 通过Javascript读取响应并为响应中的每个项目生成一个新的<option>元素。