- 在application 目录下新建 widget/Form 的class文件,编写方法 singleSelect
function singleSelect($param, $list, $selectId)
{
$arr = explode('|', $param);
$idStr = $arr[0];
$isV = $arr[1];
$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");
}
- 前端 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>
- 在 common.php文件中新建 make_option() 方法
function make_option($data, $selected_id = 0, $show_field = 'name', $val_field = 'id')
{
$html = '';
$show_field_arr = explode(',', $show_field);
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;
}
- 前端页面调用
<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>