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模板,主要想体现一下思路
Dec 25 PHP
简单的PHP缓存设计实现代码
Sep 30 PHP
浅析php变量作用域的一些问题
Aug 08 PHP
php中url函数介绍及使用示例
Feb 13 PHP
php设置session值和cookies的学习示例
Mar 21 PHP
php cli换行示例
Apr 22 PHP
PHP获取音频文件的相关信息
Jun 22 PHP
php实现可运算的验证码
Nov 10 PHP
PHP开发制作一个简单的活动日程表Calendar
Jun 20 PHP
php实现文件上传及头像预览功能
Jan 15 PHP
Laravel框架查询构造器简单示例
May 08 PHP
PHP读取文件,解决中文乱码UTF-8的方法分析
Jan 22 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强制下载类型的实现代码
2011/04/21 PHP
PHP实现指定字段的多维数组排序函数分享
2015/03/09 PHP
php实现贪吃蛇小游戏
2016/07/26 PHP
php使用pecl方式安装扩展操作示例
2019/08/12 PHP
php判断数组是否为空的实例方法
2020/05/10 PHP
原生js获取宽高与jquery获取宽高的方法关系对比
2014/04/04 Javascript
jQuery中even选择器的定义和用法
2014/12/23 Javascript
js简单网速测试方法完整实例
2015/12/15 Javascript
NODE.JS跨域问题的完美解决方案
2016/10/20 Javascript
jQuery命名空间与闭包用法示例
2017/01/12 Javascript
全新打包工具parcel零配置vue开发脚手架
2018/01/11 Javascript
小程序实现留言板
2018/11/02 Javascript
bootstrap下拉分页样式 带跳转页码
2018/12/29 Javascript
Vue实现导航栏点击当前标签变色功能
2020/08/19 Javascript
ant-design-vue 实现表格内部字段验证功能
2019/12/16 Javascript
微信小程序实现页面左右滑动
2020/11/16 Javascript
[01:00:49]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第二场 1月31日
2021/03/11 DOTA
python读取html中指定元素生成excle文件示例
2014/04/03 Python
《Python学习手册》学习总结
2018/01/17 Python
儿童学习python的一些小技巧
2018/05/27 Python
浅析Windows 嵌入python解释器的过程
2019/07/26 Python
在 Linux/Mac 下为Python函数添加超时时间的方法
2020/02/20 Python
解决Jupyter无法导入已安装的 module问题
2020/04/17 Python
Python API 操作Hadoop hdfs详解
2020/06/06 Python
python中查看.db文件中表格的名字及表格中的字段操作
2020/07/07 Python
python3 kubernetes api的使用示例
2021/01/12 Python
html5 canvas绘制矩形和圆形的实例代码
2016/06/16 HTML / CSS
Speedo美国:澳大利亚顶尖泳衣制造商
2016/08/03 全球购物
失业者真诚求职信范文
2013/12/25 职场文书
大学生求职工作的自我评价
2014/02/13 职场文书
文明餐桌行动实施方案
2014/02/19 职场文书
少先队辅导员事迹材料
2014/12/24 职场文书
2015年教师节慰问信
2015/03/23 职场文书
如何把新闻人物写得立体、鲜活?
2019/08/14 职场文书
4种非常实用的python内置数据结构
2021/04/28 Python
CSS list-style-type属性使用方法
2023/05/21 HTML / CSS