無限極分類實現 資料庫 欄目 的遍歷顯示及新增
阿新 • • 發佈:2018-12-17
php檔案中
function index(){ $list=DB::name('cate')->field("id,name,pid,path,concat(path,'-',id) as bpath")->order('bpath')->select(); // 從資料庫遍歷顯示到前臺 foreach($list as $key=>$value){ $list[$key]['count']=count(explode('-',$value['bpath'])); } $this->assign('alist',$list); return $this->fetch(''); } // 新增欄目 function add() { // echo '<pre>'; $data = $_POST; $pid=isset($_POST['pid'])?(int)$_POST['pid']:0; if($pid==0){ $path =0; }else{ $list=DB::name('cate')->where("id=$pid")->find(); // 子類的 path 為父類的 path 加上父類的 id $path =$list['path'].'-'.$list['id']; } // 資料庫有欄位 id,name,pid,path $datb = [ 'name' => $data['name'], 'pid' => $data['pid'], 'path' => $path ]; $result = DB::name('cate')->insert($datb); if($result) { $this->success('新增分類成功'); }else{ $this->success('新增分類失敗'); } }
html頁面中遍歷顯示
<form action="home/cate/add" method="post"> // 新增欄目 // 顯示 欄目 結構,select 標籤 加 size 屬性就把 下拉框 變成了 滑動框 請選擇父級欄目:<select name="pid" size="20"> <option value="0">根欄目</option> {volist name="alist" id="vo"} <option value="{$vo['id']}"> {:str_repeat("__",$vo['count']-2)} // 有幾個 - 就顯示幾個前進符 {$vo['name']} </option> {/volist} </select> <br /> 新的欄目名稱:<input type="text" name="name" /><br /> <input type="submit" value="新增欄目" /> </form>