0

情况就是这样:我有 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>

如何创建其他下拉列表?

非常感谢!

4

3 回答 3

2

你需要两件事:

  1. 将输出文件列表的 PHP 文件
  2. 使用 AJAX 显示结果的 jQuery 代码

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

  1. PHP代码:命名

列表文件.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>";
  1. jQuery 代码可以在任何文件中使用,只需使用以下代码创建一个新的 html 或 php 文件:

列表文件.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>

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

于 2013-06-20T11:30:57.803 回答
0

使用 jQuery(或者如果您愿意,也可以使用常规 javascript),您可以将函数绑定到下拉列表中的更改事件。然后使用 AJAX 在服务器上调用一个文件并返回一个 JSON 格式的字符串,其中包含所有文件并从中创建一个下拉列表。要获取所有文件,您可以使用 PHP 函数scandir

于 2013-06-19T19:12:24.360 回答
0

这个过程需要四个步骤:

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