Heim >Backend-Entwicklung >PHP-Tutorial >php实现smarty模板无限极分类的方法_PHP

php实现smarty模板无限极分类的方法_PHP

WBOY
WBOYOriginal
2016-05-28 13:12:57938Durchsuche

本文实例讲述了php实现smarty模板无限极分类的方法。分享给大家供大家参考,具体如下:

<&#63;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);
&#63;>
<select name="parent_id">
<option value='0'>顶级分类</option>
<&#63;php
 echo $aa;
&#63;>
</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程序设计有所帮助。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn