一、实现效果
二、主要代码
1、模板
2、控制器
·index模块
·add模块
3、模型
三、代码
以便于各位看官复制测试
1、模板
1
2
3
4
5
6
7
8
9
10
11
|
<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>
|
2、控制器
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
<?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());
}
}
}
?>
|
3、模型
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
<?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的自动完成实现无限级分类实例详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
原文链接:http://www.cnblogs.com/TigerYangWTH/p/5833424.html