您现在的位置是:首页 >技术点滴> PHP 网站首页PHP
thinkPHP5使用widget封装select
- PHP
- 2019-08-26
- 134 次阅读
- 0
- 原创
结合thinkPHP5 widget模板属性封装 单选 select
1、在application 目录下新建 widget/Form 的class文件,编写方法 singleSelect
/** * @param $param 参数 * @param $list 原数据 * @param $selectId 选中的ID * @return mixed * @author: hhygyl * @name: singleSelect * @describe:下拉单选 */ function singleSelect($param, $list, $selectId) { $arr = explode('|', $param); //参数 $idStr = $arr[0]; // id和name值 $isV = $arr[1]; // 1 必选2 否 $msg = $arr[2]; // 显示名称 $show_name = $arr[3]; // 显示名称的列名 $show_value = $arr[4]; // 值列名 $this->assign('idStr',$idStr); $this->assign('isV',$isV); $this->assign('msg',$msg); $this->assign('show_name',$show_name); $this->assign('show_value',$show_value); $this->assign('dataList',$list); $this->assign("selectId",$selectId); return $this->fetch("widget/single_select"); }
2、前端 widget 页面
<select name="{$idStr}" id="{$idStr}" {if $isV==1}lay-verify="required"{/if} lay-search="" lay-filter="{$idStr}" lay-verType="tips" lay-reqText="请选择{$msg}" > <option value="">【请选择{$msg}】</option> {$dataList|make_option=$selectId,$show_name,$show_value} </select>
3、在 common.php文件中新建 make_option() 方法
/** * @param $data 下拉框数据源 * @param int $selected_id 选择数据ID * @param string $show_field 显示名称 * @param string $val_field 显示值 * @author: hhygyl * @name: make_option * @describe: 下拉选择框组件 */ function make_option($data, $selected_id = 0, $show_field = 'name', $val_field = 'id') { $html = ''; $show_field_arr = explode(',', $show_field); //dump($data); if (is_array($data)) { foreach ($data as $k => $v) { $show_text = ''; if (is_array($v)) { foreach ($show_field_arr as $s) { $show_text .= $v[$s] . ' '; } $show_text = substr($show_text, 0, -1); $val_field && $k = $v[$val_field]; } else { $show_text = $v; } $sel = ''; if ($selected_id && $k == $selected_id) { $sel = 'selected'; } $html .= '' . $show_text . ''; } } echo $html; }
4、前端页面调用
<div class="layui-form-item"> <label class="layui-form-label">所属角色:</label> <div class="layui-input-block"> {:widget('forms/singleSelect',array('role_id|2|所属角色|title_show|id',$tree,0))} </div> </div>
$tree 数据格式是 tree格式或者普通的数据列表
5、效果预览
转载: 感谢您对【phper】网站平台的认可,非常欢迎各位朋友分享到个人站长或者朋友圈,但转载请说明文章出处【来源 phper: https://www.birdeyes.cn/article/29/17.html】。