PHP - 包含文件的下拉动态列表

时间:2013-06-19 19:08:19

标签: php

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

如何创建其他下拉列表?

非常感谢!

3 个答案:

答案 0 :(得分:2)

你需要两件事:

  1. 将输出文件列表的PHP文件
  2. 使用AJAX显示结果的jQuery代码
  3. 试试这个,随时问我解释:

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

此过程需要四个步骤:

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