解决thinkphp 标签库actionlist无法传多个参数的问题

浏览:1594 发布日期:2013/05/21 分类:技术分享
改动目的:

<html:list id="list" name="wikiclass" datasource="info" show="id:编号,name:类别名称,description:类别描述,parentid:所属类编号" checkbox="true" style="list" action="true" actionlist="edit:编辑,del:删除"/>

像这个我想点击“编辑”时候传多个参数到链接的方法内,但是tablib中是只能传一个的。


解决方法:

修改 TagLibHtml.class.php文件 533行,改动后使用actionlist="edit&参数1&参数2&参数3:编辑 ” 这种方式, 即可传多个参数到下个链接

改动的代码内容:

if(!empty($action)) {//显示功能操作
if(!empty($actionlist[0])) {//显示指定的功能项
$parseStr .= '<td>';
foreach($actionlist as $val) {
if(strpos($val,':')) {
$a = explode(':',$val);
if(count($a)>2) {
$parseStr .= '<a href="javascript:'.$a[0].'(\'{$'.$name.'.'.$a[2].'}\')">'.$a[1].'</a> ';
}else {
if(strpos($a[0],'&')){//MIAO 自己diy的可以传多个参数 示例 : editField&2&3&4:编辑
$b=explode('&',$a[0]);

$paramStr='';
foreach($b as $bk=>$bv){
if($bk>0){
$paramStr.=','.$bv;
}
}
$parseStr .= '<a href="javascript:'.$b[0].'(\'{$'.$name.'.'.$pk.'}\''.$paramStr.')">'.$a[1].'</a> ';
}else{
$parseStr .= '<a href="javascript:'.$a[0].'(\'{$'.$name.'.'.$pk.'}\')">'.$a[1].'</a> ';
}
}
}else{
$array = explode('|',$val);
if(count($array)>2) {
$parseStr .= ' <a href="javascript:'.$array[1].'(\'{$'.$name.'.'.$array[0].'}\')">'.$array[2].'</a> ';
}else{
$parseStr .= ' {$'.$name.'.'.$val.'} ';
}
}
}
$parseStr .= '</td>';
}
}
最佳答案
评论( 相关
后面还有条评论,点击查看>>