表aoli_cate如下图所示:
一、action部分:
aoli/Home/Lib/Action/CataAction.class.php文件如下:
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
|
<?php
class
CateAction
extends
Action{
function
index(){
$cate
=M(
'cate'
);
$list
=
$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
);
$this
->display();
}
//添加栏目
function
add(){
$cate
=
new
CateModel();
if
(
$vo
=
$cate
->create()){
if
(
$cate
->add()){
$this
->success(
'添加栏目成功'
);
}
else
{
$this
->error(
'添加栏目失败'
);
}
//dump($vo);
}
else
{
$this
->error(
$cate
->getError());
}
}
}
?>
|
二、模型部分:
aoli/Home/Lib/Model/CataModel.class.php文件如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<?php
class
CateModel
extends
Model{
//对应数据库中的表aoli_cate
protected
$_auto
=
array
(
array
(
'path'
,
'tclm'
,3,
'callback'
),
);
function
tclm(){
$pid
=isset(
$_POST
[
'pid'
])?(int)
$_POST
[
'pid'
]:0;
echo
(
$pid
);
if
(
$pid
==0){
$data
=0;
}
else
{
$list
=
$this
->where(
"id=$pid"
)->find();
$data
=
$list
[
'path'
].
'-'
.
$list
[
'id'
];
//子类的path为父类的path加上父类的id
}
return
$data
;
}
}
?>
|
三、view视图部分
aoli/Home/Tpl/default/Cate/index.html页面如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<
form
action
=
"__URL__/add"
method
=
"post"
>
请选择父级栏目:<
select
name
=
"pid"
size
=
"20"
>
<
option
value
=
"0"
>根栏目</
option
>
<
volist
name
=
"alist"
id
=
"vo"
>
<
option
value
=
"{$vo['id']}"
>
<
php
>
for($i=0;$i<$vo['count'];$i++){
echo ' ';
}
</
php
>
{$vo['name']}
</
option
>
</
volist
>
</
select
><
br
/>
新的栏目名称:<
input
type
=
"text"
name
=
"name"
/><
br
/>
<
input
type
=
"submit"
value
=
"添加栏目"
/>
</
form
>
|
相信本文所述实例对大家ThinkPHP程序设计有一定的参考价值。