欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

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

程序员文章站 2022-04-30 19:21:19
...

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