Swift51.com
麦子学院 头像
麦子学院  2017-04-14 21:52

Php如何实现smarty模板无限极分类?

回复:0  查看:2141  
本文和大家分享的主要是php中 实现smarty 模板无限极分类相关内容,一起来看看吧,希望对大家 学习php有所帮助。
  <?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.= "file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsAF4F.tmp.png
  } else{
  $str.= "file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsAF50.tmp.png
  }
  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 页面加上这句就可以了
  file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsAF51.tmp.png
  < option  value='0'> 顶级分类 option>
  {$wuxian_class}
  
  还有一个问题要注意 $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.= "file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsAF52.tmp.png
  } else{
  $str.= "file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsAF53.tmp.png
  }
  dafenglei_select($arr,$m+1,$arr[$i][0],$index);
  }
  }
   return $str;
  }
  调用只需要这样就行了:
  $aa = dafenglei_select($class_arr,0,0,0);
  希望本文所述对大家基于smarty 模板的 PHP 程序设计有所帮助。
来源:Linux 视野