找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1296|回复: 0
打印 上一主题 下一主题

利用php+mcDropdown实现文件路径可在下拉框选择

[复制链接]

2500

主题

2513

帖子

7520

积分

论坛元老

Rank: 8Rank: 8

积分
7520
跳转到指定楼层
楼主
发表于 2018-2-14 08:12:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            最近用php进行文件目录信息读取,在网上弄到下面一段代码:
//获取指定目录下的文件列表
//$path 指定的目录,默认为当前目录
//$ifchild 是否显示子目录文件列表,默认不显示
//$curpath 显示当前的路径,默认为从当前目录开始;这个主要是为了显示确定href路径
[U]复制代码[/U] 代码如下:
    function openpath($path=".",$ifchild=false,$curpath=".")  
    {  
        $handle = opendir($path);  
        if($handle)  
        {  
           while(false !== ($file = readdir($handle)))  
           {  
               if ($file != "." && $file != "..")   
               {  
                    $fullPath = $path.DIRECTORY_SEPARATOR.$file;  
                    if(is_dir($fullPath))//如果是目录文件  
                    {  
                         if($ifchild)//如果设置了显示子目录  
                         {  
                            //递归  
                            openpath($path.DIRECTORY_SEPARATOR.$file,$ifchild,$curpath.DIRECTORY_SEPARATOR.$file);  
                         }  
                         else  
                         {  
                            echo "
  • [url=]$file[/url]\n";  
                             }  
                        }  
                        else if($file != basename(__FILE__))//排除当前执行脚本  
                        {  
                            echo "
  • [url=]$file[/url]\n";  
                        }  
                        else  
                        {  
                            echo $file;  
                        }  
                   }  
               }  
            }  
            closedir($handle);  
        }  
    因为自己要提供路径选择的功能,最好是有一个下拉菜单,里面有待选路径的显示,这样方便很多,于是自己改了改,把路径输出成一个无序列表。
    下面是一个取得当前文件下所有子文件路径的代码:
    [U]复制代码[/U] 代码如下:
    /*获取指定目录文件路径列表
    *$path 指定的目录,默认为当前目录
    *$ifchild 是否获取子目录文件列表,默认不获取
    *$curpath 显示当前的路径,默认为从当前目录开始
    *&$pach_html_srt 传递一个外部变量的引用进来,因为此方法有可能被递归调用,所以以这样的方式来保存
    *      一些信息,也可以用全局变量来实现,在函数内部变量改变也影响到外部。
    *&$path_ref_count 原理同上,一个计数标志,如果递归,计数器从上一次保存的值开始自增
    */
    function openpath($path=".",$ifchild=false,&$path_html_str,&$path_ref_count)
    {
        $handle = opendir($path);
    if($handle)
    {
        while(false !== ($file = readdir($handle)))
        {
         if ($file != "." && $file != "..")
         {
        $fullPath = $path.DIRECTORY_SEPARATOR.$file;
        if(is_dir($fullPath))//如果文件是目录
        {
         $path_html_str.='';
         $path_html_str.=$file.'';
          if($ifchild)
          {
          //递归
          openpath($path.DIRECTORY_SEPARATOR.$file,$ifchild,&$path_html_str,&$path_ref_count);
          }
          $path_html_str.='
    ';
        }
         }
        }
    }
    closedir($handle);
    }
    有了上面的方法,我就可以在前台用jquery mcDropdown插件来让用户可以通过下拉菜单选择想进入的目录,所以需要封装成指定格式:
    [U]复制代码[/U] 代码如下:
    $path_ref_count = 1;
    $path_html_str ='';
    openpath(".",true,&$path_html_str,&$path_ref_count);
    $path_html_str = ''.$path_html_str.'';
    $path_html_str = str_replace ( "", '', $path_html_str );
    这样我把$path_html_str传到前台,显示出来的就是一个符合mcDropdown要求的无序列表,就可以显示相应的待选列表了。
    完整代码如下:
    test.html
    [U]复制代码[/U] 代码如下:

    test






      Please select a category:
      

    #categorymenu#

    test.php
    [U]复制代码[/U] 代码如下:
    ';
         $path_html_str.=$file.'';
          if($ifchild)
          {
          //递归
          openpath($path.DIRECTORY_SEPARATOR.$file,$ifchild,&$path_html_str,&$path_ref_count);
          }
          $path_html_str.='
    ';
        }
         }
        }
    }
    closedir($handle);
    }
    ?>
    jquery mcDropdown 插件可以在这里下载:http://www.givainc.com/labs/mcdropdown_jquery_plugin.htm
                
                
    您可能感兴趣的文章:
  • Jquery操作下拉框(DropDownList)实现取值赋值
  • asp.net mvc下拉框Html.DropDownList 和DropDownListFor的常用方法
  • 学习Bootstrap组件之下拉菜单
  • Bootstrap每天必学之下拉菜单
  • Bootstrap每天必学之级联下拉菜单
  • JS组件Bootstrap dropdown组件扩展hover事件
  • ASP.NET中DropDownList下拉框列表控件绑定数据的4种方法
  • JS组件Bootstrap实现下拉菜单效果代码
  • Bootstrap实现下拉菜单效果
  • Bootstrap模块dropdown实现下拉框响应
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端