/**
* 获取$_GET传递过来的参数并进行重新索取和排列,以便传递给分页函数
* smartyArgDiv('loadMain','admin_main_mem',array('page'=>'1','uid'=>'2','dd'=>3));
* retrun loadMain('admin_main_mem',page=1&uid=2&dd=3')
*
* @param string $func 传递给模版的JS函数
* @param string $tarPhp AJAX提交分页的目标页面(PHP处理页面)
* @param array $args是传递给PHP处理页面的参数
* @return string
*/
function smartyArgDiv($func,$tarPhp,$args){
$argDiv_str = "{$func}('{$tarPhp}','";
if(is_array($args)){
/*判断数组最后一个元素是否为空,如果为空就把数组弹出*/
while(end($args)==''){
array_pop($args);
}
$arg = count($args);
foreach ($args as $key => $value){
static $i=1;
/*判断数组是否有空值元素,有就忽略*/
if($value!=''){
if($i==$arg){
$argDiv_str .= $key."=".$value;
}else{
$argDiv_str .= $key."=".$value."&";
}
}
$i++;
}
}
return $argDiv_str .= "')";
}
js程序片段:
//这里我通过arguments灵活的处理了别的页面提交过来的参数,以不变应万变,也就是说,可以对这个函数进行扩展,只需要对arguments进行判断就可以了
function loadMain(){
/*变换辅助容器的值*/
document.getElementById('helper').value = arguments[0];
if(arguments[0]=='admin_main_sys'){
document.getElementById('nv_left').style.display='none';
}else{
document.getElementById('nv_left').style.display='block';
document.getElementById('searchs').style.display='block';
}
var url = "../admin/"+arguments[0]+".php";
//判断是否有第二个参数
if(typeof(arguments[1])!='undefined'){
url += "?"+arguments[1];
}
ajax=createRequest();
ajax.onreadystatechange = loadAction;
ajax.open("GET",url,true);
ajax.send(null);
}
TPL模版片段:
<{foreach name=users key=ukey item=uid from=$uids}>
<tr style="background-color:<{cycle values='#fff,#dee5ba'}>;font-weight:bold">
<td><input type="checkbox" name="uids[]" value="<{$ukey}>"></td>
<{foreach key=key name=user item=uid from=$uid}>
<td class="<{if $key!=uid}>user_t<{/if}>">
<{if $key==group}>
<{if $uid==0}>
普通会员
<{else}>
管理员
<{/if}>
<{else}>
<{$uid}>
<{/if}>
</td>
<{/foreach}>
</tr>
<{/foreach}>