源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

使用ThinkPHP的自动完成实现无限级分类实例详解

  • 时间:2021-08-21 02:32 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:使用ThinkPHP的自动完成实现无限级分类实例详解
[b]一、实现效果[/b] [img]http://files.jb51.net/file_images/article/201609/2016090214420760.png[/img]   [b]二、主要代码[/b] [b]  1、模板[/b] [img]http://files.jb51.net/file_images/article/201609/2016090214420761.png[/img]  [b] 2、控制器[/b]     ·index模块 [img]http://files.jb51.net/file_images/article/201609/2016090214420762.png[/img]     ·add模块 [img]http://files.jb51.net/file_images/article/201609/2016090214420763.png[/img]   [b]  3、模型[/b] [img]http://files.jb51.net/file_images/article/201609/2016090214420764.png[/img] [b]三、代码[/b]   以便于各位看官复制测试  [b] 1、模板[/b]
<form action="__URL__/add" method="post">
栏目<select name="fid" size=20>
<option value="0">栏目</option>
<volist name='list' id='vo'>
<option value="{$vo['id']}">
{$vo['blank']}{$vo['name']}</option>
</volist>
</select><br/>
添加栏目:<input type="text" name='name'/><br/>
<input type="submit" value="添加"/> 
</form>
  [b]2、控制器[/b]
<?php
class IndexAction extends Action
{
/**
+----------------------------------------------------------
* 默认操作
+----------------------------------------------------------
*/
public function index(){
$Column=new ColumnModel();
$list=$Column->field("id,name,fid,sort,concat(sort,'-',id) nsort")->order('nsort asc')->select();
foreach($list as $key=>$val){
$layer=count(explode('-',$list[$key]['nsort']));
$list[$key]['blank']='';
for($i=0;$i<$layer;$i++){
if($i==$layer-1){
$list[$key]['blank'].='---|';
}else{
$list[$key]['blank'].='---';
}
}
}
$this->assign('list',$list);
$this->display();
}
public function add(){
$Column=new ColumnModel;
$Column->create();
if($Column->add()){
$this->success('添加成功');
}else{
$this->error($Column->getError());
}
} 
} 
?>
 [b] 3、模型[/b]
<?php
class ColumnModel extends Model{
protected $_auto=array(
array('name','trim',0,'function'),//过滤用户不小心输入的空白字符
array('sort','createsort',0,'callback'),
);
/*
*自动完成sort字段
*根据POST过来的fid来查询上级sort,以确定本级sort
*/
protected function createsort(){
$fid=$_POST['fid']?(int)$_POST['fid']:0;//如果用户没有选择父栏目,则默认父栏目id为0
if($fid!='0'){
$list=$this->where("id=$fid")->find();
$data=$list['sort'].'-'.$fid;
}else{
$data='0';
}
return $data;
}
}
?>
以上所述是小编给大家介绍的ThinkPHP的自动完成实现无限级分类实例详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程素材网网站的支持!
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部