中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在thinkphp中利用html:list標簽對參數進行傳遞

發布時間:2020-12-11 15:23:18 來源:億速云 閱讀:199 作者:Leah 欄目:開發技術

這期內容當中小編將會給大家帶來有關如何在thinkphp中利用html:list標簽對參數進行傳遞,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

針對thinkphp 2.0 版本有效,thinkphp 3.0 版本 未測試.

主要修改這個文件 /Thinkphp/Lib/Think/Template/Taglib/TabLibHtml.class.php 的 _list 方法

注釋有新增內容的代碼部分是新增加的
主要通過 -- 分割多個參數(會自動替換為,)

代碼如下:

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'],0,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="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" '; //支持鼠標移動單元行顏色變化 具體方法在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函數實現
                $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="javascript:'.$href[0].'('.implode(',',$temp).')">';
                    }else{
                        $parseStr .= '<a xhref="javascript:'.$href[0].'('{$'.$name.'.'.$href[1].'|addslashes}')">';
                    }
                }else {
                    //如果沒有指定默認傳編號值
                    $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) {
                    //轉換 -- 為 , 傳遞多個參數
                    $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="javascript:'.$a[0].'('{$'.$name.'.'.$a[2].'}')">'.$a[1].'</a>&nbsp;';
      }else {
       $parseStr .= '<a xhref="javascript:'.$a[0].'('{$'.$name.'.'.$pk.'}')">'.$a[1].'</a>&nbsp;';
      }
     }else{
                        //應用 php 函數
      $array = explode('|',$val);
      if(count($array)>2) {
       $parseStr .= ' <a xhref="javascript:'.$array[1].'('{$'.$name.'.'.$array[0].'}')">'.$array[2].'</a>&nbsp;';
      }else{
                            //轉換 -- 為 , 傳遞多個參數
                            $val = str_replace('--',',',$val);//此處為新增內容
       $parseStr .= ' {$'.$name.'.'.$val.'}&nbsp;';
      }
     }
                }
                $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"  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個參數 順序是:$user['task_category']$user['exe_user']$user['id']
方法 printAccept 傳遞了3個參數 順序是:$user['status']$user['exe_user']$user['id']

其中:

task_category|getTaskCategory=$user['exe_user']--$user['id']:


status|printAccept=$user['exe_user']--$user['id'],task_track:

跟蹤為傳遞多個參數的演示

上述就是小編為大家分享的如何在thinkphp中利用html:list標簽對參數進行傳遞了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

定日县| 平泉县| 教育| 府谷县| 龙里县| 玉林市| 东平县| 崇信县| 宁化县| 兴海县| 永丰县| 青铜峡市| 澄城县| 祁门县| 健康| 巴林右旗| 措美县| 黔南| 集安市| 绍兴县| 樟树市| 新乡市| 莱阳市| 宁安市| 卢湾区| 金平| 芒康县| 广元市| 淮阳县| 茌平县| 秦皇岛市| 托克逊县| 巴塘县| 东台市| 隆子县| 武汉市| 微博| 舞钢市| 涿州市| 双峰县| 青河县|