首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

ThinkPHP html:list 標籤傳遞多個參數實作解決方案

     編輯:PHP 綜合知識

適用版本

此修改針對 ThinkPHP 2.0 版本有效,3.0 版本未測試。

修改檔案

/Thinkphp/Lib/Think/Template/Taglib/TabLibHtml.class.php 的 _list 方法

核心修改邏輯

主要透過 -- 分割多個參數(自動替換為 ,)。註釋有「新增內容」標記處為新增代碼。

關鍵代碼片段

// 支援多個欄位傳遞
$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})">';
}

// 轉換 -- 為 , 傳遞多個參數
$property[1] = str_replace('--', ',', $property[1]); // 新增內容
$parseStr .= '{$'.$name.'.'.$property[0].'|'.$property[1].'}';

// ... 另一處新增
$val = str_replace('--', ',', $val); // 新增內容
$parseStr .= ' {$'.$name.'.'.$val.'} ';

模板調用範例

<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 個參數,順序為:

  1. $user['task_category']
  2. $user['exe_user']
  3. $user['id']

printAccept 傳遞 3 個參數,順序為:

  1. $user['status']
  2. $user['exe_user']
  3. $user['id']

其中 task_category|getTaskCategory=$user['exe_user']--$user['id'] 與 status|printAccept=$user['exe_user']--$user['id'] 為傳遞多個參數的示範。

希望本文對大家的 ThinkPHP 框架程式設計有所幫助。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved