thinkphp中html:list標(biāo)簽傳遞多個(gè)參數(shù)實(shí)例
本文實(shí)例講述了關(guān)于thinkphp中html:list標(biāo)簽傳多個(gè)參數(shù)問題解決辦法,分享給大家供大家參考。具體分析如下:
此改動(dòng) 針對thinkphp 2.0 版本有效,thinkphp 3.0 版本 未測試.
主要修改這個(gè)文件 /Thinkphp/Lib/Think/Template/Taglib/TabLibHtml.class.php 的 _list 方法
注釋有新增內(nèi)容的代碼部分是新增加的
主要通過 -- 分割多個(gè)參數(shù)(會(huì)自動(dòng)替換為,)
{
$tag = $this->parseXmlAttr($attr,'list');
$id = $tag['id']; //表格ID
$datasource = $tag['datasource']; //列表顯示的數(shù)據(jù)源VoList名稱
$pk = empty($tag['pk'])?'id':$tag['pk'];//主鍵名,默認(rèn)為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'],0,1)=='$') {
$show = $this->tpl->get(substr($tag['show'],1));
}else {
$show = $tag['show'];
}
$show = explode(',',$show); //列表顯示字段列表
//計(jì)算表格的列數(shù)
$colNum = count($show);
if(!empty($checkbox)) $colNum++;
if(!empty($action)) $colNum++;
if(!empty($key)) $colNum++;
//顯示開始
$parseStr = "<!-- Think 系統(tǒng)列表組件開始 -->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="javascript: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" '; //支持鼠標(biāo)移動(dòng)單元行顏色變化 具體方法在js中定義
if(!empty($checkbox)) {
$parseStr .= 'onmouseover="over(event)" onmouseout="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函數(shù)實(shí)現(xiàn)
$href = explode('|',$field[2]);
if(count($href)>1) {
//指定鏈接傳的字段值
// 支持多個(gè)字段傳遞
$array = explode('^',$href[1]);
if(count($array)>1) {
foreach ($array as $a){
$temp[] = ''{$'.$name.'.'.$a.'|addslashes}'';
}
$parseStr .= '<a xhref="javascript:'.$href[0].'('.implode(',',$temp).')">';
}else{
$parseStr .= '<a xhref="javascript:'.$href[0].'('{$'.$name.'.'.$href[1].'|addslashes}')">';
}
}else {
//如果沒有指定默認(rèn)傳編號值
$parseStr .= '<a xhref="javascript:'.$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) {
//轉(zhuǎn)換 -- 為 , 傳遞多個(gè)參數(shù)
$property[1] = str_replace('--',',',$property[1]);//此處為新增內(nèi)容
$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])) {//顯示指定的功能項(xiàng)
$parseStr .= '<td>';
foreach($actionlist as $val) {
//應(yīng)用 javascript
if(strpos($val,':')) {
$a = explode(':',$val);
if(count($a)>2) {
$parseStr .= '<a xhref="javascript:'.$a[0].'('{$'.$name.'.'.$a[2].'}')">'.$a[1].'</a> ';
}else {
$parseStr .= '<a xhref="javascript:'.$a[0].'('{$'.$name.'.'.$pk.'}')">'.$a[1].'</a> ';
}
}else{
//應(yīng)用 php 函數(shù)
$array = explode('|',$val);
if(count($array)>2) {
$parseStr .= ' <a xhref="javascript:'.$array[1].'('{$'.$name.'.'.$array[0].'}')">'.$array[2].'</a> ';
}else{
//轉(zhuǎn)換 -- 為 , 傳遞多個(gè)參數(shù)
$val = str_replace('--',',',$val);//此處為新增內(nèi)容
$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 系統(tǒng)列表組件結(jié)束 -->n";
return $parseStr;
}
模版調(diào)用演示:
方法 getTaskCategory 傳遞了3個(gè)參數(shù) 順序是:
$user['task_category']
$user['exe_user']
$user['id']
方法 printAccept 傳遞了3個(gè)參數(shù) 順序是:
$user['status']
$user['exe_user']
$user['id']
其中:
與
希望本文所述對大家的ThinkPHP框架程序設(shè)計(jì)有所幫助。
- Thinkphp5.0 框架的請求方式與響應(yīng)方式分析
- thinkPHP5.1框架路由::get、post請求簡單用法示例
- thinkPHP5.0框架應(yīng)用請求生命周期分析
- thinkphp中ajax與php響應(yīng)過程詳解
- thinkPHP中U方法加密傳遞參數(shù)功能示例
- ThinkPHP采用GET方式獲取中文參數(shù)查詢無結(jié)果的解決方法
- ThinkPHP3.1新特性之Action參數(shù)綁定
- thinkPHP5框架閉包函數(shù)與子查詢傳參用法示例
- ThinkPHP連接數(shù)據(jù)庫操作示例【基于DSN方式和數(shù)組傳參的方式】
- TP5框架請求響應(yīng)參數(shù)實(shí)例分析
相關(guān)文章
weiphp微信公眾平臺(tái)授權(quán)設(shè)置
本文給大家分享的是一款開源的微信公眾平臺(tái)weiphp的授權(quán)設(shè)置教程,非常的實(shí)用,有使用weiphp平臺(tái)的小伙伴可以參考下。2016-01-01Codeigniter中禁止A Database Error Occurred錯(cuò)誤提示的方法
在默認(rèn)的情況下,CodeIgniter會(huì)顯示所有的PHP錯(cuò)誤。但是當(dāng)你開發(fā)程序結(jié)束時(shí),你可能想要改變這個(gè)情況。這篇文章主要介紹了Codeigniter中禁止A Database Error Occurred錯(cuò)誤提示的方法,需要的朋友可以參考下2014-06-06thinkPHP5.0框架引入Traits功能實(shí)例分析
這篇文章主要介紹了thinkPHP5.0框架引入Traits功能,結(jié)合實(shí)例形式分析了Traits的概念、功能及thinkPHP5.0中Traits功能的使用方法,需要的朋友可以參考下2017-03-03PHP file_get_contents函數(shù)讀取遠(yuǎn)程數(shù)據(jù)超時(shí)的解決方法
這篇文章主要介紹了PHP file_get_contents函數(shù)讀取遠(yuǎn)程數(shù)據(jù)超時(shí)的解決方法,本文直接給出解決方法代碼,需要的朋友可以參考下2015-05-05php smarty truncate UTF8亂碼問題解決辦法
這篇文章主要介紹了php smarty truncate UTF8亂碼問題解決辦法,需要的朋友可以參考下2014-06-06PHP水印類,支持添加圖片、文字、填充顏色區(qū)域的實(shí)現(xiàn)
下面小編就為大家?guī)硪黄狿HP水印類,支持添加圖片、文字、填充顏色區(qū)域的實(shí)現(xiàn)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-02-02