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中的类-什么叫类
Nov 20 PHP
实例(Smarty+FCKeditor新闻系统)
Jan 02 PHP
php下批量挂马和批量清马代码
Feb 27 PHP
解析关于java,php以及html的所有文件编码与乱码的处理方法汇总
Jun 24 PHP
php无限遍历文件夹示例分享
Mar 04 PHP
PHP生成自定义长度随机字符串的函数分享
May 04 PHP
PHP获取mysql数据表的字段名称和详细信息的方法
Sep 27 PHP
session 加入redis的实现代码
Jul 15 PHP
php获得文件夹下所有文件的递归算法的简单实例
Nov 01 PHP
PHP API接口必备之输出json格式数据示例代码
Jun 27 PHP
PHP获取链表中倒数第K个节点的方法
Jan 18 PHP
Laravel框架生命周期与原理分析
Jun 12 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模板技术[转]
2007/01/04 PHP
显示程序执行时间php函数代码
2013/08/29 PHP
Codeigniter控制器controller继承问题实例分析
2016/01/19 PHP
PHP如何获取当前主机、域名、网址、路径、端口等参数
2017/06/09 PHP
ThinkPHP中图片按比例切割的代码实例
2019/03/08 PHP
微信公众平台开发教程①获取用户Openid及个人信息图文详解
2019/04/10 PHP
ExtJs事件机制基本代码模型和流程解析
2010/10/24 Javascript
js用正则表达式来验证表单(比较齐全的资源)
2013/11/17 Javascript
TinyMCE汉化及本地上传图片功能实例详解
2016/05/31 Javascript
Angularjs---项目搭建图文教程
2016/07/08 Javascript
前端 Vue.js 和 MVVM 详细介绍
2016/12/29 Javascript
原生js实现可拖动的登录框效果
2017/01/21 Javascript
纯原生js实现贪吃蛇游戏
2020/04/16 Javascript
解决JQuery全选/反选第二次失效的问题
2017/10/11 jQuery
Vue 中使用vue2-highcharts实现曲线数据展示的方法
2018/03/05 Javascript
使用javascript函数编写简单银行取钱存钱流程
2018/05/26 Javascript
JS与jQuery判断文本框还剩多少字符可以输入的方法
2018/09/01 jQuery
JavaScript常用进制转换及位运算实例解析
2020/10/14 Javascript
利用python程序生成word和PDF文档的方法
2017/02/14 Python
详谈Python2.6和Python3.0中对除法操作的异同
2017/04/28 Python
Python程序员面试题 你必须提前准备!(答案及解析)
2018/01/23 Python
python 简单照相机调用系统摄像头实现方法 pygame
2018/08/03 Python
python分块读取大数据,避免内存不足的方法
2018/12/10 Python
使用TFRecord存取多个数据案例
2020/02/17 Python
jupyter notebook快速入门及使用详解
2020/11/13 Python
python实现企业微信定时发送文本消息的示例代码
2020/11/24 Python
详解Pycharm第三方库的安装及使用方法
2020/12/29 Python
什么是JNDI的上下文?如何初始化JNDI上下文
2012/03/10 面试题
优秀毕业生求职推荐信范文
2013/11/21 职场文书
员工培训邀请函
2014/01/11 职场文书
旅游专业职业生涯规划范文
2014/01/13 职场文书
大学生社会实践方案
2014/05/11 职场文书
市级优秀班主任事迹材料
2014/05/13 职场文书
会计系毕业求职信
2014/08/07 职场文书
西柏坡观后感
2015/06/08 职场文书
利用For循环遍历Python字典的三种方法实例
2022/03/25 Python