thinkphp 下拉框保持默认值
一般从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>
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。