好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

ThinkPHP学习(四)volist标签高级应用之多重嵌套循

Action代码:

 

?

1

2

3

4

5

public function index(){

     $prod = I( "get.prod_en" );

     $id = I( "get.id" , 0 , "int" );

     if ($prod == "" ){

         $serviceProduct = array(); //多重循环遍历的数组

?

1

2

3

4

5

6

//数据保存在两张表中,这里通过循环初始化$serviceProduct数组

             $service = M( "product_class" )->order( "oid ASC" )->select();

             for ($i = 0 ; $i < count($service); $i++)

             {

                 array_push($serviceProduct, array( "srvName" =>$service[$i][ "pc_cn" ], "product" =>M( "product" )->where( "prod_class_id=" .$service[$i][ "pcid" ])->order( "oid ASC" )->select()));

             }

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

//如果要在模板中输出变量,必须在在控制器中把变量传递给模板,系统提供了assign方法对模板变量赋

值,无论何种变量类型都统一使用assign赋值。

             $ this ->assign( "serviceProduct" , $serviceProduct);

             $ this ->display();

         } else {

             if ($id > 0 ){

                 $ this ->display( "detail" );

             } else {

                 $ this ->assign( 'prod_en' , $prod);

                 $clsList = M( "question_class" )->order( "oid ASC" )->select();

                 $ this ->assign( 'clsList' , $clsList);

                

                 $qusList = M( "question" )->order( "oid ASC" )->select();

                 $ this ->assign( 'qusList' , $qusList);

                 $ this ->display( "list" );

             }

         }

     }

模板代码:

 

 

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

<volist name= "serviceProduct" id= "sp" key= "i" >

     <dl class = "dlist odd" >

         <dt>{$sp.srvName}</dt>

         <volist name= "sp.product" id= "pd" key= "j" >

             <dd>{$pd.prod_cn}</dd>

             < if condition= "$j lt count($sp['product'])" >

             <dd>|</dd>

             </ if >

         </volist>

         < if condition= "count($sp['product']) EQ 0" >

             <dd> </dd>

         </ if >

     </dl>

</volist>

当使用多重嵌套循环时,需要为每一个volist指定key值,通过

?

1

< if condition= "$j lt count($sp['product'])" ></ if >

判断是否为数组中的最后一个元素。

查看更多关于ThinkPHP学习(四)volist标签高级应用之多重嵌套循的详细内容...

  阅读:46次