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 相关文章推荐
IIS环境下快速安装、配置和调试PHP5.2.0
Dec 17 PHP
PHP 源代码压缩小工具
Dec 22 PHP
使用PHPMYADMIN操作mysql数据库添加新用户和数据库的方法
Apr 02 PHP
深入array multisort排序原理的详解
Jun 18 PHP
JoshChen_web格式编码UTF8-无BOM的小细节分析
Aug 16 PHP
PHP中鲜为人知的10个函数
Feb 28 PHP
PHP中date与gmdate的区别及默认时区设置
May 12 PHP
mac系统下为 php 添加 pcntl 扩展
Aug 28 PHP
php通过PHPExcel导入Excel表格到MySQL数据库的简单实例
Oct 29 PHP
php上传excel表格并获取数据
Apr 27 PHP
thinkPHP5框架设置404、403等http状态页面的方法
Jun 05 PHP
php提取微信账单的有效信息
Oct 01 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
一个程序下载的管理程序(四)
2006/10/09 PHP
强烈声明: 不要使用(include/require)_once
2013/06/06 PHP
php判断电脑访问、手机访问的例子
2014/05/10 PHP
php中chdir()函数用法实例
2014/11/13 PHP
使用PHP接受文件并获得其后缀名的方法
2015/08/05 PHP
Yii框架实现邮箱激活的方法【数字签名】
2016/10/18 PHP
PHP基于curl模拟post提交json数据示例
2018/06/22 PHP
用JQuery 判断某个属性是否存在hasAttr的解决方法
2013/04/26 Javascript
给超链接添加特效鼠标移动展示提示信息且随鼠标移动
2013/10/17 Javascript
jQuery中odd选择器的定义和用法
2014/12/23 Javascript
jQuery实现表格颜色交替显示的方法
2015/03/09 Javascript
jQuery的load()方法及其回调函数用法实例
2015/03/25 Javascript
Javascript实现的Map集合工具类完整实例
2015/07/31 Javascript
js图片卷帘门导航菜单特效代码分享
2015/09/10 Javascript
微信小程序自定义组件实现tabs选项卡功能
2018/07/14 Javascript
vue2中,根据list的id进入对应的详情页并修改title方法
2018/08/24 Javascript
node.js 基于cheerio的爬虫工具的实现(需要登录权限的爬虫工具)
2019/04/10 Javascript
微信小程序左右滚动公告栏效果代码实例
2019/09/16 Javascript
js+springMVC 提交数组数据到后台的实例
2019/09/21 Javascript
JS使用正则表达式判断输入框失去焦点事件
2019/10/16 Javascript
Python中optparse模块使用浅析
2015/01/01 Python
Python闭包的两个注意事项(推荐)
2017/03/20 Python
浅谈python中列表、字符串、字典的常用操作
2017/09/19 Python
django开发教程之利用缓存文件进行页面缓存的方法
2017/11/10 Python
使用Python进行AES加密和解密的示例代码
2018/02/02 Python
python入门前的第一课 python怎样入门
2018/03/06 Python
Python程序打包工具py2exe和PyInstaller详解
2019/06/28 Python
python分布式编程实现过程解析
2019/11/08 Python
30行Python代码实现高分辨率图像导航的方法
2020/05/22 Python
Python用来做Web开发的优势有哪些
2020/08/05 Python
python安装sklearn模块的方法详解
2020/11/28 Python
八一演出活动方案
2014/02/03 职场文书
建筑工地门卫岗位职责
2014/04/30 职场文书
2014年村支部书记四风对照检查材料思想汇报
2014/10/02 职场文书
五星红旗迎风飘扬观后感
2015/06/17 职场文书
MySQL慢查询中的commit慢和binlog中慢事务的区别
2022/06/16 MySQL