牛骨文教育服务平台(让学习变的简单)
博文笔记

thinkphp 下拉框保持默认值

创建时间:2017-06-13 投稿人: 浏览次数:366

一般从catelist表中需要修改编辑,此时会进入cateedit但对于下拉框有parent_id和cat_id如何才能在编辑时保持原来已选的呢

一点击编辑会进入以下页面而那内容自动填充进去,且下拉框可供选择同时默认值也有

此时控制器层需要调用两个不同的assign

<?php
namespace AdminController;
use ThinkController;
class CatController extends Controller {
 
     public function cateedit(){
     	 $catModel=D("Cat");
     	 $this->assign("gettree",$catModel->gettree());//上级分类需要用
     	 $this->assign("catinfo",$catModel->find(I("cat_id")));//所有的都需用到
        $this->display();
    
    }

    
}
Model层建一个无限极分类这样下拉框可供选择

<?php 

namespace  AdminModel;
 use ThinkModel;


 class CatModel extends Model{
          public  function  gettree($p=0,$lv=0){
                $t=array();
                foreach($this->select()as $k=>$v){
                	if($v["parent_id"]==$p){
                		$v["lv"]=$lv;
                		$t[]=$v;
                		$t=array_merge($t,$this->gettree($v["cat_id"],$lv+1));//合并数组
                	}
                }
               return $t;
          }
 }
 ?>

html模板层

<table width="100%" id="general-table">
      <tr>
        <td class="label">分类名称:</td>
        <td>
          <input type="text" name="cat_name" maxlength="20" value="{$catinfo.cat_name}" size="27" /> <font color="red">*</font>
        </td>
      </tr>
      <tr>
        <td class="label">上级分类:</td>
        <td>
          <select name="parent_id">
              <option value="0">类型</option>
              <foreach name="gettree" item="c">
              <option value="{$c.cat_id}"  {$c["cat_id"]==$catinfo["parent_id"]?"selected":""}  >{$c.cat_name}</option>
              </foreach>

             
                   </select>
        </td>
      </tr>

      <tr>
        <td class="label">分类描述:</td>
        <td>
          <textarea name="intro" rows="6" cols="48">{$catinfo.intro}</textarea>
        </td>
      </tr>
      </table>





声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。