zoukankan      html  css  js  c++  java
  • 学习笔记-php简单联级下拉菜单输出-2016.4.7

      在使用联级输出的时候一到一个模型里面的小问题,之前不注意,模型里不同的方法每次得到的数据交给控制器的时候,我都以数组的形式输出,但是这个数组我作为私有字段,到时今天做联级菜单输出的时候,不能正常输出,最后不得不吧这个私有字段去掉,在每个方法的作用域里面分别初始化一个数组,这样就互不干扰!(还是考虑的太少,太异想天开!)

    不说了,贴代码

    html部分

    <select name="nav">
      <option>请选择一个栏目类别</option>
        {$nav}
    </select>

    /********************************/
    php控制器部分
    <?php

    class ContentAction extends Action{
    public function __construct(&$tpl){
    parent::__construct($tpl);
    }

    public function action(){
    switch($_GET['action']){
    case 'show':
    $this->show();
    break;
    case 'add':
    $this->add();
    break;
    case 'update':
    $this->update();
    break;
    case 'delete':
    $this->delete();
    break;
    default:
    Tool::alertBack('非法操作!');
    break;
    }
    }

    //show
    private function show(){
    $this->tpl->assign('show',true);
    $this->tpl->assign('title','文档列表');
    }

    //add
    private function add(){
    $this->tpl->assign('add',true);
    $this->tpl->assign('title','新增文档');
    //获取联级下拉菜单
    /*
    * 使用<optgroup></optgroup>分组获取主菜单
    * 再内容控制器内实例化导航模型
    */
    //初始化一个变量
    $htm = 0;
         //实例化nav模型类
    $nav = new NavModel();
    foreach($nav->getAllNav() as $object){//这里循环输出主导航
           //将主导航用optgroup标签按照分组形式输出
    $htm .= '<optgroup label="'.$object->nav_name.'">'." ";//这里为了能够查看源代码更加清晰,所以加上了
           //将主导航的ID交给导航模型的私有字段
    $nav->id = $object->id;
            //同过ID查找对应的PID,并加以判断
    if(!!$childNav = $nav->getAllChildNav()){
             //如果存在就将数组数据循环取出,并用option标签输出
    foreach($childNav as $obj){
    $htm .= '<option value="'.$obj->id.'">'.$obj->nav_name.'</option>'." ";
    }
    }
    $htm .='</optgroup>';
    }
          //向模版里面注册变量
    $this->tpl->assign('nav',$htm);
    }


    }

    //晚安!
  • 相关阅读:
    《ASP.NET Core跨平台开发从入门到实战》Web API自定义格式化protobuf
    .NET Core中文分词组件jieba.NET Core
    .NET Core 2.0及.NET Standard 2.0
    Visual Studio 2017 通过SSH 调试Linux 上.NET Core
    Visual Studio 2017 ASP.NET Core开发
    Visual Studio 2017正式版离线安装及介绍
    在.NET Core 上运行的 WordPress
    IT人员如何开好站立会议
    puppeteer(二)操作实例——新Web自动化工具更轻巧更简单
    puppeteer(一)环境搭建——新Web自动化工具(同selenium)
  • 原文地址:https://www.cnblogs.com/lanxiaoyu/p/5361952.html
Copyright © 2011-2022 走看看