thinkphp3.2实现动态构建单选列表

浏览:2404 发布日期:2015/01/12 分类:功能实现 关键字: 构造 thinkphp
仅提供思路, 抛砖引玉之用!用控制器代码控制模板的输出。 可以重复利用代码, 不用重复制造轮子。
高手请绕道, php纯技术讨论学习群:323899029


function.php 中写一个公共方法用于创建单选列表function CreateRadio($name,$default,$val){
    $str = '<span class="RadioList '.$name.'">';
    foreach($val as $k => $v){
        $str .= '<i>';
        if($k==$default){
            $str .= '<input type="radio" checked="checked" name="'.$name.'" id="'.$name.'_'.$k.'" value="'.$k.'" /><label for="'.$name.'_'.$k.'">'.$v.'</label>';    
        }else{
            $str .= '<input type="radio" name="'.$name.'" id="'.$name.'_'.$k.'" value="'.$k.'" /><label for="'.$name.'_'.$k.'">'.$v.'</label>';    
        }
        $str .= '</i>';
    }
    $str .= '</span>';
    return $str;

}
在需要的控制器中写像这样写$sexRadio = CreateRadio('sex',1,array('0'=>'保密','1'=>'男','2'=>'女'));
 $this->assign('sexRadio',$sexRadio); 
在模板中直接输出 {$sexRadio} 变量即可

最后html的表现是这样的:<span class="RadioList sex">
    <i>
        <input type="radio" value="0" id="sex_0" name="sex"><label for="sex_0">保密</label>
    </i>
    <i>
        <input type="radio" value="1" id="sex_1" name="sex" checked="checked"><label for="sex_1">男</label>
    </i>
    <i>
        <input type="radio" value="2" id="sex_2" name="sex"><label for="sex_2">女</label>
    </i>
</span>
说明:

CreateRadio($name,$default,$val)

$name 是单选列表的名称,html中的 <span class="RadioList sex"> 样式名称sex就为了标明是性别的单选列表, 用于在前台方便js调用。

$default 是列表的默认值,在html中的表现就是那个值被选了,我传进去的是1,所以“男”这个就被选择了。 当然可以传空值进去。

$sexRadio 是一个数组,根据数组的长度循环出所有的值,根据自己的需求传值进去。


当然这是抛砖引玉,用这样的思路可以构建下拉列表、复选框列表。
评论( 相关
后面还有条评论,点击查看>>