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图片上传程序
Mar 27 PHP
PHP校验ISBN码的函数代码
Jan 17 PHP
php的chr和ord函数实现字符加减乘除运算实现代码
Dec 05 PHP
浅谈web上存漏洞及原理分析、防范方法(文件名检测漏洞)
Jun 29 PHP
ThinkPHP模板比较标签用法详解
Jun 30 PHP
基于php的微信公众平台开发入门实例
Apr 15 PHP
PHP中使用GD库绘制折线图 折线统计图的绘制方法
Nov 09 PHP
PHP 数组基本操作方法详解
Jun 17 PHP
php错误日志简单配置方法
Jul 11 PHP
JavaScript实现删除电脑的关机键
Jul 26 PHP
针对多用户实现头像上传功能PHP代码 适用于登陆页面制作
Aug 17 PHP
php 二维数组时间排序实现代码
Nov 19 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
CI框架无限级分类+递归的实现代码
2016/11/01 PHP
PHP高效获取远程图片尺寸和大小的实现方法
2017/10/20 PHP
PHP优化之批量操作MySQL实例分析
2020/04/23 PHP
用javascript添加控件自定义属性解析
2013/11/25 Javascript
Javascript this 关键字 详解
2014/10/22 Javascript
canvas学习之API整理笔记(一)
2016/12/29 Javascript
Javascript仿京东放大镜的效果
2017/03/01 Javascript
微信小程序 本地数据存储实例详解
2017/04/13 Javascript
JS如何实现在页面上快速定位(锚点跳转问题)
2017/08/14 Javascript
QQ跳转支付宝并自动领红包脚本(最新)
2018/06/22 Javascript
详解express使用vue-router的history踩坑
2019/06/05 Javascript
用webAPI实现图片放大镜效果
2020/11/23 Javascript
nodejs中的异步编程知识点详解
2021/01/17 NodeJs
python使用datetime模块计算各种时间间隔的方法
2015/03/24 Python
Python实现截屏的函数
2015/07/25 Python
Python 性能优化技巧总结
2016/11/01 Python
用Python进行简单图像识别(验证码)
2018/01/19 Python
Python使用 Beanstalkd 做异步任务处理的方法
2018/04/24 Python
Python实现手写一个类似django的web框架示例
2018/07/20 Python
python实现批量nii文件转换为png图像
2019/07/18 Python
详解Python文件修改的两种方式
2019/08/22 Python
Python单元测试及unittest框架用法实例解析
2020/07/09 Python
python装饰器三种装饰模式的简单分析
2020/09/04 Python
HTML5拖拉上传文件的简单实例
2017/01/11 HTML / CSS
lululemon美国官网:瑜伽服+跑步装备
2018/11/16 全球购物
JAVA程序设计笔试题面试题一套
2015/07/28 面试题
硕士研究生个人求职信
2013/12/04 职场文书
临时工聘用合同协议书
2014/10/29 职场文书
Nginx下配置Https证书详细过程
2021/04/01 Servers
vue使用节流函数的踩坑实例指南
2021/05/20 Vue.js
GitHub上77.9K的Axios项目有哪些值得借鉴的地方详析
2021/06/15 Javascript
python基础之函数的定义和调用
2021/10/24 Python
CSS使用伪类控制边框长度的方法
2022/01/18 HTML / CSS
html5调用摄像头截图功能
2022/01/18 Javascript
阿里云k8s服务升级时502错误 springboot项目应用
2022/04/09 Servers
Java8 Stream API 提供了一种高效且易于使用的处理数据的方式
2022/04/13 Java/Android