search
Homephp教程php手册thinkphp中html:list标签传递多个参数实例,thinkphplist

thinkphp中html:list标签传递多个参数实例,thinkphplist

本文实例讲述了关于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 = "n";
        $parseStr  .= '

';
        $parseStr  .= '';
        $parseStr  .= '';
        //列表需要显示的字段
        $fields = array();
        foreach($show as $val) {
         $fields[] = explode(':',$val);
        }
        if(!empty($checkbox) && 'true'==strtolower($checkbox)) {//如果指定需要显示checkbox列
            $parseStr .='';
        }
        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 .= '';
        $parseStr .= '         if(!empty($checkbox)) {
            $parseStr .= 'onmouseover="over(event)" onmouseout="out(event)" onclick="change(event)" ';
        }
        $parseStr .= '>';
        if(!empty($checkbox)) {//如果需要显示checkbox 则在每行开头显示checkbox
            $parseStr .= '';
        }
        if(!empty($key)) {
            $parseStr .= '';
        }
        foreach($fields as $field) {
            //显示定义的列表字段
            $parseStr   .=  '';
        }
        if(!empty($action)) {//显示功能操作
            if(!empty($actionlist[0])) {//显示指定的功能项
                $parseStr .= '';
                //echo $parseStr;
                //exit();
            }
        }
        $parseStr .= '
No';
            }else {
                $parseStr .= '
';
            }
            $showname[2] = isset($showname[2])?$showname[2]:$showname[0];
            if($sort) {
                $parseStr .= ''.$showname[0].'thinkphp中html:list标签传递多个参数实例,thinkphplist
操作
{$i}';
            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 .= '';
                    }else{
                        $parseStr .= '
';
                    }
                }else {
                    //如果没有指定默认传编号值
                    $parseStr .= '
';
                }
            }
            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 .= '
';
            }
            $parseStr .= '
';
                foreach($actionlist as $val) {
                     //应用 javascript
     if(strpos($val,':')) {
      $a = explode(':',$val);
      if(count($a)>2) {
                            $parseStr .= ''.$a[1].' ';
      }else {
       $parseStr .= ''.$a[1].' ';
      }
     }else{
                        //应用 php 函数
      $array = explode('|',$val);
      if(count($array)>2) {
       $parseStr .= ' '.$array[2].' ';
      }else{
                            //转换 -- 为 , 传递多个参数
                            $val = str_replace('--',',',$val);//此处为新增内容
       $parseStr .= ' {$'.$name.'.'.$val.'} ';
      }
     }
                }
                $parseStr .= '
';
        $parseStr .= "nn";
        return $parseStr;
}

模版调用演示:

复制代码 代码如下:

方法 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:link传递多个参数

如果所传的参数确实有值的话应该是afaa.jsp?z=3&y=2&x=1,你上面那种情况可能是因为你传的值为空或为""才没有在等号后面显示出属性的值。&是标识用来传递多个参数,起到了属性之间的间隔的作用
 

html中怎通过超链接的锚标签()传递参数?

用问号和&符号带值啊,比如这个例子
锚标签
?后面的second_id=参数,可以到下个页面接收second_id传过来的值,也就是3002
asp接收是这样写的
second_id=Request.QueryString("second_id")
response.write(second_id)
那么输入就会显示3002
 

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
3 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
3 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
3 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

SecLists

SecLists

SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.