PHP编程:thinkphp中html:list标签传递多个参数实例
《thinkphp中html:list标签传递多个参数实例》要点: PHP学习本篇章节讲解关于thinkphp中html:list标签传多个参数问题解决方法,分享给大家供大家参考.具体分析如下: 此改动 针对thinkphp 2.0 版本有效,thinkphp 3.0 版本 未测试. 注释有新增内容的代码部分是新增加的
代码如下:
public function _list($attr)
{ ??????? $tag??????? = $this->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 = "<!-- Think 系统列表组件开始 -->n"; ??????? $parseStr? .= '<table id="'.$id.'" class="'.$style.'" cellpadding=0 cellspacing=0 >'; ??????? $parseStr? .= '<tr><td height="5" colspan="'.$colNum.'" class="topTd" ></td></tr>'; ??????? $parseStr? .= '<tr class="row" >'; ??????? //列表需要显示的字段 ??????? $fields = array(); ??????? foreach($show as $val) { ???????? $fields[] = explode(':',$val); ??????? } ??????? if(!empty($checkbox) && 'true'==strtolower($checkbox)) {//如果指定需要显示checkbox列 ??????????? $parseStr .='<th width="8"><input type="checkbox" id="check" onclick="CheckAll(''.$id.'')"></th>'; ??????? } ??????? if(!empty($key)) { ??????????? $parseStr .= '<th width="12">No</th>'; ??????? } ??????? foreach($fields as $field) {//显示指定的字段 ??????????? $property = explode('|',$field[0]); ??????????? $showname = explode('|',$field[1]); ??????????? if(isset($showname[1])) { ??????????????? $parseStr .= '<th width="'.$showname[1].'">'; ??????????? }else { ??????????????? $parseStr .= '<th>'; ??????????? } ??????????? $showname[2] = isset($showname[2])?$showname[2]:$showname[0]; ??????????? if($sort) { ??????????????? $parseStr .= '<a xhref="sortBy(''.$property[0].'','{$sort}',''.ACTION_NAME.'')" title="按照'.$showname[2].'{$sortType} ">'.$showname[0].'<eq name="order" value="'.$property[0].'" ><img xsrc="/Public/images/{$sortImg}.gif" width="12" height="17" border="0" align="absmiddle"></eq></a></th>'; ??????????? }else{ ??????????????? $parseStr .= $showname[0].'</th>'; ??????????? } ??????? } ??????? if(!empty($action)) {//如果指定显示操作功能列 ??????????? $parseStr .= '<th >操作</th>'; ??????? } ??????? $parseStr .= '</tr>'; ??????? $parseStr .= '<volist name="'.$datasource.'" id="'.$name.'" ><tr class="row" '; //支持鼠标移动单元行颜色变化 具体方法在js中定义 ??????? if(!empty($checkbox)) { ??????????? $parseStr .= 'onmou搜索引擎优化ver="over(event)" onmou搜索引擎优化ut="out(event)" onclick="change(event)" '; ??????? } ??????? $parseStr .= '>'; ??????? if(!empty($checkbox)) {//如果需要显示checkbox 则在每行开头显示checkbox ??????????? $parseStr .= '<td><input type="checkbox" name="key" value="{$'.$name.'.'.$pk.'}"></td>'; ??????? } ??????? if(!empty($key)) { ??????????? $parseStr .= '<td>{$i}</td>'; ??????? } ??????? foreach($fields as $field) { ??????????? //显示定义的列表字段 ??????????? $parseStr?? .=? '<td>'; ??????????? if(!empty($field[2])) { ??????????????? // 支持列表字段链接功能 具体方法由JS函数实现 ??????????????? $href = explode('|',$field[2]); ??????????????? if(count($href)>1) { ??????????????????? //指定链接传的字段值 ??????????????????? // 支持多个字段传递 ??????????????????? $array = explode('^',$href[1]); ??????????????????? if(count($array)>1) { ??????????????????????? foreach ($array as $a){ ??????????????????????????? $temp[] =? ''{$'.$name.'.'.$a.'|addslashes}''; ??????????????????????? } ??????????????????????? $parseStr .= '<a xhref="'.$href[0].'('.implode(',$temp).')">'; ??????????????????? }else{ ??????????????????????? $parseStr .= '<a xhref="'.$href[0].'('{$'.$name.'.'.$href[1].'|addslashes}')">'; ??????????????????? } ??????????????? }else { ??????????????????? //如果没有指定默认传编号值 ??????????????????? $parseStr .= '<a xhref="'.$field[2].'('{$'.$name.'.'.$pk.'|addslashes}')">'; ??????????????? } ??????????? } ??????????? if(strpos($field[0],'^')) { ??????????????? $property = explode('^',$field[0]); ??????????????? foreach ($property as $p){ ??????????????????? $unit = explode('|',$p); ??????????????????? if(count($unit)>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 .= '</a>'; ??????????? } ??????????? $parseStr .= '</td>'; ??????? } ??????? if(!empty($action)) {//显示功能操作 ??????????? if(!empty($actionlist[0])) {//显示指定的功能项 ??????????????? $parseStr .= '<td>'; ??????????????? foreach($actionlist as $val) { ???????????????????? //应用 javascript ???? if(strpos($val,':')) { ????? $a = explode(':',$val); ????? if(count($a)>2) { ??????????????????????????? $parseStr .= '<a xhref="'.$a[0].'('{$'.$name.'.'.$a[2].'}')">'.$a[1].'</a>?'; ????? }else { ?????? $parseStr .= '<a xhref="'.$a[0].'('{$'.$name.'.'.$pk.'}')">'.$a[1].'</a>?'; ????? } ???? }else{ ??????????????????????? //应用 php 函数 ????? $array = explode('|',$val); ????? if(count($array)>2) { ?????? $parseStr .= ' <a xhref="'.$array[1].'('{$'.$name.'.'.$array[0].'}')">'.$array[2].'</a>?'; ????? }else{ ??????????????????????????? //转换 -- 为,传递多个参数 ??????????????????????????? $val = str_replace('--',$val);//此处为新增内容 ?????? $parseStr .= ' {$'.$name.'.'.$val.'}?'; ????? } ???? } ??????????????? } ??????????????? $parseStr .= '</td>'; ??????????????? //echo $parseStr; ??????????????? //exit(); ??????????? } ??????? } ??????? $parseStr .= '</tr></volist><tr><td height="5" colspan="'.$colNum.'" class="bottomTd"></td></tr></table>'; ??????? $parseStr .= "n<!-- Think 系统列表组件结束 -->n"; ??????? return $parseStr; } 模版调用演示:
代码如下:
<html:list id="checkList" name="user" style="list" checkbox="true" action="true" datasource="list" show="id:编号,task_title:任务标题:edit,task_type|getTaskType:任务类型,task_category|getTaskCategory=$user['exe_user']--$user['id']:所属栏目,hope_time|toDate='Y-m-d H#i':期望完成时间,process_rate|printRate:当前进度,exe_user|getUserName:处理人,status|getTaskStatus:状态" actionlist="status|printAccept=$user['exe_user']--$user['id'],task_track:跟踪" />
办法 getTaskCategory 传递了3个参数 顺序是: 办法 printAccept 传递了3个参数 顺序是: 其中:
代码如下:
task_category|getTaskCategory=$user['exe_user']--$user['id']:
与
代码如下:
status|printAccept=$user['exe_user']--$user['id'],task_track:跟踪 为 传递多个参数的演示
希望本文所述对大家的ThinkPHP框架程序设计有所赞助. 编程之家培训学院每天发布《thinkphp中html:list标签传递多个参数实例》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |