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 相关文章推荐
杏林同学录(五)
Oct 09 PHP
PHP的分页功能
Mar 21 PHP
PHP 查找字符串常用函数介绍
Jun 07 PHP
php全角字符转换为半角函数
Feb 07 PHP
php中3种方法删除字符串中间的空格
Mar 10 PHP
php+ajax实时输入自动搜索匹配的方法
Dec 26 PHP
php结合正则获取字符串中数字
Jun 19 PHP
php使用MySQL保存session会话的方法
Jun 26 PHP
PHP使用NuSOAP调用Web服务的方法
Jul 18 PHP
屏蔽PHP默认设置中的Notice警告的方法
May 20 PHP
Laravel框架文件上传功能实现方法示例
Apr 16 PHP
PHP实现百度人脸识别
May 06 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
非常不错的MySQL优化的8条经验
2008/03/24 PHP
了解PHP的返回引用和局部静态变量
2015/06/04 PHP
php+ajax制作无刷新留言板
2015/10/27 PHP
PHP命令空间namespace及use的用法小结
2017/11/27 PHP
php处理抢购类功能的高并发请求
2018/02/08 PHP
laravel 框架实现无限级分类的方法示例
2019/10/31 PHP
接收键盘指令的脚本
2006/06/26 Javascript
初探jquery——表单应用范例
2007/02/20 Javascript
各浏览器对link标签onload/onreadystatechange事件支持的差异分析
2011/04/27 Javascript
写得不错的jquery table鼠标经过变色代码
2013/09/27 Javascript
javascript写的一个模拟阅读小说的程序
2014/04/04 Javascript
Jquery实现Div上下移动示例
2014/04/23 Javascript
js清空form表单中的内容示例
2014/05/20 Javascript
JavaScript实现的链表数据结构实例
2015/04/02 Javascript
浅谈JavaScript字符串与数组
2015/06/03 Javascript
如何利用JQuery实现从底部回到顶部的功能
2016/12/27 Javascript
jQuery选取所有复选框被选中的值并用Ajax异步提交数据的实例
2017/08/04 jQuery
vue-cli + sass 的正确打开方式图文详解
2017/10/27 Javascript
vue 国际化 vue-i18n 双语言 语言包
2018/06/07 Javascript
vue组件定义,全局、局部组件,配合模板及动态组件功能示例
2019/03/19 Javascript
React Native中ScrollView组件轮播图与ListView渲染列表组件用法实例分析
2020/01/06 Javascript
vue学习笔记之slot插槽用法实例分析
2020/02/29 Javascript
基于Element封装一个表格组件tableList的使用方法
2020/06/29 Javascript
vue实现移动端H5数字键盘组件使用详解
2020/08/25 Javascript
[40:10]2015国际邀请赛全明星表演赛
2015/08/07 DOTA
基于python中staticmethod和classmethod的区别(详解)
2017/10/24 Python
为什么str(float)在Python 3中比Python 2返回更多的数字
2018/10/16 Python
详解如何在Apache中运行Python WSGI应用
2019/01/02 Python
django修改models重建数据库的操作
2020/03/31 Python
python解决OpenCV在读取显示图片的时候闪退的问题
2021/02/23 Python
世界上最大的糖果店:Dylan’s Candy Bar
2017/11/07 全球购物
工作交流会欢迎词
2014/01/12 职场文书
学校运动会报道稿
2014/09/23 职场文书
MongoDB数据库的安装步骤
2021/06/18 MongoDB
解决SpringBoot跨域的三种方式
2021/06/26 Java/Android
python如何查找列表中元素的位置
2022/05/30 Python