php实现smarty模板无限极分类的方法


Posted in PHP onDecember 07, 2015

本文实例讲述了php实现smarty模板无限极分类的方法。分享给大家供大家参考,具体如下:

<?php
$conn = mysql_connect("localhost","admin","admin");
mysql_select_db("people_shop",$conn);
mysql_query("SET NAMES 'UTF-8'");
$class_arr=array();
$sql = "select * from ecs_brand ORDER BY brand_id asc ";
$query = mysql_query($sql);
while($row = mysql_fetch_array($query)){
  $class_arr[] = array($row['brand_id'],$row['brand_name'],$row['parent_id'],$row['sort_order']);
}
function dafenglei_select($m,$id,$index)
{  
  global $class_arr;
  global $str;
  $n = str_repeat("    ",$m);
  // $n = $m;
  for($i=0;$i<count($class_arr);$i++){
    if($class_arr[$i]['2']==$id){
      if($class_arr[$i]['0']==$index){
        $str.= "<option value=\"".$class_arr[$i][0]."\" selected=\"selected\">".$n.$class_arr[$i][1]."</option>\n";
      }else{
        $str.= "<option value=\"  ".$class_arr[$i][0]."\">".$n.$class_arr[$i][1]."</option>\n";
      }
      dafenglei_select($m+1,$class_arr[$i][0],$index);    
    }
  }
  return $str;
}
$aa = dafenglei_select(1,0,0);
?>
<select name="parent_id">
<option value='0'>顶级分类</option>
<?php
 echo $aa;
?>
</select>

如果是用smarty的话
再加一个

$smarty->assign('wuxian_class',$aa);

在html页面加上这句就可以了
<select name="parent_id">
<option value='0'>顶级分类</option>
{$wuxian_class}
</select>

还有一个问题要注意 $str必须要是global行的,否则会有错误。

无限极分类的延伸:

我们可以写一个函数,每次调用这个函数的时候我们只需要传入这个数组及数据,就可以调用了,下面是我写的一个方法。

function dafenglei_select(& $arr=array(),$m,$id,$index)
{  
  // global $class_arr;
  global $str;
   $n = str_repeat("    ",$m);
  // $n = $m;
  for($i=0;$i<count($arr);$i++){
    if($arr[$i]['2']==$id){
      if($arr[$i]['0']==$index){
        $str.= "<option value=\"".$arr[$i][0]."\" selected=\"selected\">".$n.$arr[$i][1]."</option>\n";
      }else{
        $str.= "<option value=\"  ".$arr[$i][0]."\">".$n.$arr[$i][1]."</option>\n";
      }
      dafenglei_select($arr,$m+1,$arr[$i][0],$index);
    }
  }
   return $str;
}

调用只需要这样就行了:

$aa = dafenglei_select($class_arr,0,0,0);

希望本文所述对大家基于smarty模板的PHP程序设计有所帮助。

PHP 相关文章推荐
Php中文件下载功能实现超详细流程分析
Jun 13 PHP
php mssql扩展SQL查询中文字段名解决方法
Oct 15 PHP
php判断上传的Excel文件中是否有图片及PHPExcel库认识
Jan 11 PHP
PHP设计模式之责任链模式的深入解析
Jun 13 PHP
解决ThinkPHP关闭调试模式时报错的问题汇总
Apr 22 PHP
PHP抓取网页、解析HTML常用的方法总结
Jul 01 PHP
php生成固定长度纯数字编码的方法
Jul 09 PHP
PHP实现防盗链的方法分析
Jul 25 PHP
php制作圆形用户头像的实例_自定义封装类源代码
Sep 18 PHP
php curl获取到json对象并转成数组array的方法
May 31 PHP
PHP观察者模式实例分析【对比JS观察者模式】
May 22 PHP
PHP 扩展Memcached命令用法实例总结
Jun 04 PHP
学习php设计模式 php实现单例模式(singleton)
Dec 07 #PHP
学习php设计模式 php实现桥梁模式(bridge)
Dec 07 #PHP
学习php设计模式 php实现装饰器模式(decorator)
Dec 07 #PHP
PHP函数func_num_args用法实例分析
Dec 07 #PHP
学习php设计模式 php实现抽象工厂模式
Dec 07 #PHP
php计划任务之验证是否有多个进程调用同一个job的方法
Dec 07 #PHP
学习php设计模式 php实现建造者模式
Dec 07 #PHP
You might like
如何获知PHP程序占用多少内存(memory_get_usage)
2012/09/23 PHP
PHP字典树(Trie树)定义与实现方法示例
2017/10/09 PHP
PHP下载文件函数与用法示例
2019/09/27 PHP
表单验证的完整应用案例探讨
2013/03/29 Javascript
extjs 3.31 TreeGrid实现静态页面加载json到TreeGrid里面
2013/04/02 Javascript
改变文件域的样式实现思路同时兼容ie、firefox
2013/10/23 Javascript
javascript中创建对象的几种方法总结
2013/11/01 Javascript
js格式化时间和js格式化时间戳示例
2014/02/10 Javascript
禁用JavaScript控制台调试的方法
2014/03/07 Javascript
jQuery页面加载初始化常用的三种方法
2014/06/04 Javascript
基于RequireJS和JQuery的模块化编程日常问题解析
2016/04/14 Javascript
JS如何设置cookie有效期为当天24点并弹出欢迎登陆界面
2016/08/04 Javascript
vuejs2.0实现一个简单的分页示例
2017/02/22 Javascript
ajax +NodeJS 实现图片上传实例
2017/06/06 NodeJs
解决ie img标签内存泄漏的问题
2017/10/13 Javascript
如何去除vue项目中的#及其ie9兼容性
2018/01/11 Javascript
JS实现的透明度渐变动画效果示例
2018/04/28 Javascript
vue+iview+less 实现换肤功能
2018/08/17 Javascript
浅谈从React渲染流程分析Diff算法
2018/09/08 Javascript
vue+iview动态渲染表格详解
2019/03/19 Javascript
JavaScript惰性载入函数实例分析
2019/03/27 Javascript
关于Vue中axios的封装实例详解
2019/10/20 Javascript
[16:56]教你分分钟做大人:司夜刺客
2014/10/30 DOTA
python中map、any、all函数用法分析
2015/04/21 Python
python 网络编程常用代码段
2016/08/28 Python
如何用Python合并lmdb文件
2018/07/02 Python
appium+python adb常用命令分享
2020/03/06 Python
python 等差数列末项计算方式
2020/05/03 Python
幼儿园中秋节活动方案
2014/02/06 职场文书
五好党支部事迹材料
2014/02/06 职场文书
青奥会口号
2014/06/12 职场文书
市贸粮局召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
2014年基建工作总结
2014/12/12 职场文书
教师病假条范文
2015/08/17 职场文书
选择比努力更重要?这是长期以来对“努力”的最大误解
2019/07/12 职场文书
Python访问Redis的详细操作
2021/06/26 Python