本文实例讲述了关于thinkPHP中html:list标签传多个参数问题解决办法,分享给大家供大家参考。具体分析如下:
此改动 针对thinkPHP 2.0 版本有效,thinkPHP 3.0 版本 未测试. 主要修改这个文件 /ThinkPHP/Lib/Think/Template/Taglib/TabLibHtml.class.PHP 的 _list 方法
注释有新增内容的代码部分是新增加的 主要通过 -- 分割多个参数(会自动替换为,)
代码如下:
parseXmlAttr($attr,'list');
$id = $tag['id']; //表格ID
$datasource = $tag['datasource']; //列表显示的数据源VoList名称
$pk = empty($tag['pk'])?'id':$tag['pk'];//主键名,默认为id
$style = $tag['style']; //样式名
$name = !empty($tag['name'])?$tag['name']:'vo'; //Vo对象名
$action = $tag['action']=='true'?true:false; //是否显示功能操作
$key = !empty($tag['key'])?true:false;
$sort = $tag['sort']=='false'?false:true;
$checkBox = $tag['checkBox']; //是否显示CheckBox
if(isset($tag['actionlist'])) {
$actionlist = explode(',',trim($tag['actionlist'])); //指定功能列表
}
if(substr($tag['show'],1)=='$') {
$show = $this->tpl->get(substr($tag['show'],1));
}else {
$show = $tag['show'];
}
$show = explode(',$show); //列表显示字段列表
//计算表格的列数
$colNum = count($show);
if(!empty($checkBox)) $colNum++;
if(!empty($action)) $colNum++;
if(!empty($key)) $colNum++;
//显示开始
$parseStr = "n";
$parseStr .= '';
$parseStr .= '
Box" id="check" onclick="CheckAll(''.$id.'')"> | '; } if(!empty($key)) { $parseStr .= ''; } foreach($fields as $field) {//显示指定的字段 $property = explode('|',$field[0]); $showname = explode('|',$field[1]); if(isset($showname[1])) { $parseStr .= ' | '; }else{ $parseStr .= $showname[0].''; } } if(!empty($action)) {//如果指定显示操作功能列 $parseStr .= ' | 操作 | '; } $parseStr .= '
---|---|---|---|
Box" name="key" value="{$'.$name.'.'.$pk.'}"> | 显示定义的列表字段 $parseStr .= '1) { //指定链接传的字段值 // 支持多个字段传递 $array = explode('^',$href[1]); if(count($array)>1) { foreach ($array as $a){ $temp[] = ''{$'.$name.'.'.$a.'|addslashes}''; } $parseStr .= '1) { $parseStr .= '{$'.$name.'.'.$unit[0].'|'.$unit[1].'} '; }else { $parseStr .= '{$'.$name.'.'.$p.'} '; } } }else{ $property = explode('|',$field[0]); if(count($property)>1) { //转换 -- 为,传递多个参数 $property[1] = str_replace('--',$property[1]);//此处为新增内容 $parseStr .= '{$'.$name.'.'.$property[0].'|'.$property[1].'}'; }else { $parseStr .= '{$'.$name.'.'.$field[0].'}'; } } if(!empty($field[2])) { $parseStr .= ''; } $parseStr .= ' | 显示功能操作 if(!empty($actionlist[0])) {//显示指定的功能项 $parseStr .= '2) { $parseStr .= ''; }else { $parseStr .= ''; } }else{ //应用 PHP 函数 $array = explode('|',$val); if(count($array)>2) { $parseStr .= ' '; }else{ //转换 -- 为,传递多个参数 $val = str_replace('--',$val);//此处为新增内容 $parseStr .= ' {$'.$name.'.'.$val.'}'; } } } $parseStr .= ' | |