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 相关文章推荐
使用无限生命期Session的方法
Oct 09 PHP
php出现Cannot modify header information问题的解决方法大全
Apr 09 PHP
Zend Studio for Eclipse的java.lang.NullPointerException错误的解决方法
Dec 06 PHP
PHP自定义函数收代码
Aug 01 PHP
基于MySQL到MongoDB简易对照表的详解
Jun 03 PHP
编写安全 PHP应用程序的七个习惯深入分析
Jun 08 PHP
YII实现分页的方法
Jul 09 PHP
PHP在线调试执行的实现方法(附demo源码)
Apr 28 PHP
PHP Cookie学习笔记
Aug 23 PHP
Thinkphp通过一个入口文件如何区分移动端和PC端
Apr 18 PHP
php中如何执行linux命令详解
Nov 06 PHP
YII框架模块化处理操作示例
Apr 26 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网上调查系统
2006/10/09 PHP
利用 window_onload 实现select默认选择
2006/10/09 PHP
PHP Yii框架之表单验证规则大全
2015/11/16 PHP
PHP设计模式之适配器模式(Adapter)原理与用法详解
2019/12/12 PHP
PHP实现腾讯短网址生成api接口实例
2020/12/08 PHP
解决AJAX中跨域访问出现'没有权限'的错误
2008/08/20 Javascript
js实现全屏漂浮广告移入光标停止移动
2013/12/02 Javascript
使用js画图之圆、弧、扇形
2015/01/12 Javascript
JS+CSS实现美化的下拉列表框效果
2015/08/11 Javascript
jquery仿QQ登录账号选择下拉框效果
2016/03/22 Javascript
vue2.0开发实践总结之疑难篇
2016/12/07 Javascript
bootstrap精简教程_动力节点Java学院整理
2017/07/14 Javascript
使用use注册Vue全局组件和全局指令的方法
2018/03/08 Javascript
vue router 源码概览案例分析
2018/10/09 Javascript
javascript设计模式 ? 命令模式原理与用法实例分析
2020/04/20 Javascript
学习 Vue.js 遇到的那些坑
2021/02/02 Vue.js
[01:03]DOTA2新的征程 你的脚印值得踏上
2014/08/13 DOTA
Python网络爬虫与信息提取(实例讲解)
2017/08/29 Python
使用Python对微信好友进行数据分析
2018/06/27 Python
Python List cmp()知识点总结
2019/02/18 Python
谈一谈基于python的面向对象编程基础
2019/05/21 Python
在Pycharm中调试Django项目程序的操作方法
2019/07/17 Python
python实现高斯(Gauss)迭代法的例子
2019/11/20 Python
python中文分词库jieba使用方法详解
2020/02/11 Python
TensorFlow的环境配置与安装教程详解(win10+GeForce GTX1060+CUDA 9.0+cuDNN7.3+tensorflow-gpu 1.12.0+python3.5.5)
2020/06/22 Python
Python通过format函数格式化显示值
2020/10/17 Python
Python WebSocket长连接心跳与短连接的示例
2020/11/24 Python
美国男装连锁零售商:Men’s Wearhouse
2016/10/14 全球购物
Ray-Ban雷朋瑞典官方网站:全球领先的太阳眼镜品牌
2019/08/22 全球购物
俄罗斯马克西多姆家居用品网上商店:Максидом
2020/02/06 全球购物
党的群众路线教育实践活动领导班子整改方案
2014/10/25 职场文书
幼儿园综治宣传月活动总结
2015/05/07 职场文书
《给予树》教学反思
2016/03/03 职场文书
JS ES6异步解决方案
2021/04/29 Javascript
JavaScript实现简单图片切换
2021/04/29 Javascript
spring boot实现文件上传
2022/08/14 Java/Android