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 stristr() 函数(不区分大小写的字符串查找)
Jun 03 PHP
php中随机显示图片的函数代码
Jun 23 PHP
php设计模式 Delegation(委托模式)
Jun 26 PHP
PHP下使用CURL方式POST数据至API接口的代码
Feb 14 PHP
PHP之短标签开启设置
Jun 17 PHP
php目录遍历函数opendir用法实例
Nov 20 PHP
微信API接口大全
Apr 15 PHP
php进行ip地址掩码运算处理的方法
Jul 11 PHP
浅谈thinkphp5 instance 的简单实现
Jul 30 PHP
PHP给源代码加密的几种方法汇总(推荐)
Feb 06 PHP
PHP利用递归函数实现无限级分类的方法
Mar 22 PHP
PHP常量define和const的区别详解
May 18 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
基于mysql的论坛(1)
2006/10/09 PHP
Linux下ZendOptimizer的安装与配置方法
2007/04/12 PHP
让CodeIgniter的ellipsize()支持中文截断的方法
2014/06/12 PHP
js 绑定带参数的事件以及手动触发事件
2010/04/27 Javascript
JavaScript 原型与继承说明
2010/06/09 Javascript
JQuery扩展插件Validate 3通过参数设置错误信息
2011/09/05 Javascript
IE的事件传递-event.cancelBubble示例介绍
2014/01/12 Javascript
jQuery实现html元素拖拽
2015/07/21 Javascript
js的各种排序算法实现(总结)
2016/07/23 Javascript
JS制作类似选项卡切换的年历
2016/12/03 Javascript
微信小程序 页面跳转和数据传递实例详解
2017/01/19 Javascript
js实现仿购物车加减效果
2017/03/01 Javascript
php简单数据库操作类的封装
2017/06/08 Javascript
JQuery和html+css实现带小圆点和左右按钮的轮播图实例
2017/07/22 jQuery
JS获取子、父、兄节点方法小结
2017/08/14 Javascript
JQuery Ajax动态加载Table数据的实例讲解
2018/08/09 jQuery
js自定义input文件上传样式
2018/10/26 Javascript
vue App.vue中的公共组件改变值触发其他组件或.vue页面监听
2019/05/31 Javascript
vue 计算属性和侦听器的使用小结
2021/01/25 Vue.js
[38:21]2018DOTA2亚洲邀请赛3月30日 小组赛A组 LGD VS Newbee
2018/03/31 DOTA
python分割列表(list)的方法示例
2017/05/07 Python
python中selenium操作下拉滚动条的几种方法汇总
2019/07/14 Python
Django框架配置mysql数据库实现过程
2020/04/22 Python
泰国汽车、火车和轮渡票预订网站:Bus Online Ticket
2017/09/09 全球购物
计算机专业毕业生自我鉴定
2014/01/16 职场文书
幼教简历自我评价
2014/01/28 职场文书
工程专业求职自荐书范文
2014/02/18 职场文书
妇女儿童发展规划实施方案
2014/03/16 职场文书
学校募捐倡议书
2014/05/14 职场文书
大三学生学年自我鉴定
2014/09/12 职场文书
岗位职责范本大全
2015/02/26 职场文书
休假证明书
2015/06/24 职场文书
Python获取江苏疫情实时数据及爬虫分析
2021/08/02 Python
使用jpa之动态插入与修改(重写save)
2021/11/23 Java/Android
Mysql存储过程、触发器、事件调度器使用入门指南
2022/01/22 MySQL
利用JuiceFS使MySQL 备份验证性能提升 10 倍
2022/03/17 MySQL