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 相关文章推荐
利用Memcached在php下实现session机制 替换PHP的原生session支持
Aug 21 PHP
PHP学习之字符串比较和查找
Apr 17 PHP
PHP 获取MySQL数据库里所有表的实现代码
Jul 13 PHP
php不允许用户提交空表单(php空值判断)
Nov 12 PHP
php的ZipArchive类用法实例
Oct 20 PHP
php实现兼容2038年后Unix时间戳转换函数
Mar 18 PHP
PHP文件生成的图片无法使用CDN缓存的解决方法
Jun 20 PHP
ThinkPHP控制器详解
Jul 27 PHP
如何利用http协议发布博客园博文评论
Aug 03 PHP
CodeIgniter钩子用法实例详解
Jan 20 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
Jul 22 PHP
JSON PHP中,Json字符串反序列化成对象/数组的方法
May 31 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数组函数序列之array_search()- 按元素值返回键名
2011/11/04 PHP
PHP的全局错误处理详解
2016/04/25 PHP
php无法连接mysql数据库的正确解决方法
2016/07/01 PHP
PHP注释语法规范与命名规范详解篇
2018/01/21 PHP
thinkphp3.2.0 setInc方法 源码全面解析
2018/01/29 PHP
jquery 插件学习(五)
2012/08/06 Javascript
微信JS接口汇总及使用详解
2015/01/09 Javascript
jquery控制背景音乐开关与自动播放提示音的方法
2015/02/06 Javascript
JS使用cookie实现DIV提示框只显示一次的方法
2015/11/05 Javascript
javascript拖拽效果延伸学习
2016/04/04 Javascript
浅谈JavaScript的计时器对象
2016/12/26 Javascript
关于vue.js过渡css类名的理解(推荐)
2017/04/10 Javascript
vue学习之mintui picker选择器实现省市二级联动示例
2017/10/12 Javascript
JavaScript数据结构之双向链表定义与使用方法示例
2017/10/27 Javascript
JavaScript页面倒计时功能完整示例
2019/05/15 Javascript
[58:46]OG vs NAVI 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
[05:49]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS 选手采访
2021/03/11 DOTA
跟老齐学Python之复习if语句
2014/10/02 Python
python字典多键值及重复键值的使用方法(详解)
2016/10/31 Python
python3.5 tkinter实现页面跳转
2018/01/30 Python
selenium+python 去除启动的黑色cmd窗口方法
2018/05/22 Python
在Python中获取操作系统的进程信息
2019/08/27 Python
python中栈的原理及实现方法示例
2019/11/27 Python
Anaconda3+tensorflow2.0.0+PyCharm安装与环境搭建(图文)
2020/02/18 Python
Python调用C/C++的方法解析
2020/08/05 Python
css3 实现滚动条美化效果的实例代码
2021/01/06 HTML / CSS
韩国CJ食品专卖网:CJonmart
2016/09/11 全球购物
《秋游》教学反思
2014/04/24 职场文书
五分钟演讲稿
2014/04/30 职场文书
我爱我校演讲稿
2014/05/21 职场文书
环境日宣传活动总结
2014/07/09 职场文书
社会实践活动报告
2015/02/05 职场文书
2015年读书月活动总结
2015/03/26 职场文书
2015年综治维稳工作总结
2015/04/07 职场文书
毕业设计论文致谢词
2015/05/14 职场文书
解除租赁合同协议书
2016/03/21 职场文书