服务器之家

服务器之家 > 正文

smarty巧妙处理iframe中内容页的代码

时间:2019-12-27 17:18     来源/作者:PHP教程网

废话不多说,进去正题 
做过后台的,应该都知道,经常要用到iframe来处理导航,如果按一般的思路来做这个功能,还是挺简单的 
可是当我用smarty的时候,就发现了问题,比如,一个iframeset分成了:头部top,左边menu,右边main, 
正常情况,用smarty来处理的话,一般是这样: 
如果3个页面仅仅只是静态页面的话,就是如下处理 
iframe.html代码: 

复制代码代码如下:


<frame src="top.html" name="topFrame" id="topFrame" scrolling="no"> 
<frameset cols="180,*" name="btFrame" id="btFrame" frameborder="NO" border="0" framespacing="0"> 
<frame src="menu.html" id="leftbar" noresize name="menu" scrolling="yes"> 
<frame src="main.html" id="rightbar" noresize name="main" scrolling="yes"> 
</frameset> 


假设iframe里面的内容页都要应用到一些特殊处理,如: 
top.html需要显示后台登陆用户名 
menu.html中menu都是动态获取 
main.html中需要读取服务器的信息 
这样的话,我们会给3个内容页分别用3个后台处理页 

复制代码代码如下:


//top.php: 
$smarty->assign('user', $names ); 
smarty_Output('top.php') 
//menu.php: 
$arr=array(); 
$arr=GetMenu(); 
$smarty->assign('menu', $arr); 
smarty_Output('menu.php'); 
//main.php 
$smarty->assign('serverInfo', $serverInfoArr); 
smarty_Output('main.php'); 
//显示iframe页 
smarty_Output('iframe.html') 


上面的处理方法,完全能达到要求 
iframe.html代码: 

复制代码代码如下:


<frame src="top.php" name="topFrame" id="topFrame" scrolling="no"> 
<frameset cols="180,*" name="btFrame" id="btFrame" frameborder="NO" border="0" framespacing="0"> 
<frame src="menu.php" id="leftbar" noresize name="menu" scrolling="yes"> 
<frame src="main.php" id="rightbar" noresize name="main" scrolling="yes"> 
</frameset> 


现在我们假设,我们现在要对这3个内容页分别进行分角色处理,不同角色,3个页面需要显示不同的效果 
按上面的处理方法,我们就需要对3个页面分别处理,这样就自然的就多了冗余的处理,而且以后的维护也麻烦 
于是我想到了下面的方法,独立出一个专门的处理程序iframe.php,通过条件来模拟出上面3个页面 
直接贴代码了: 
iframe.php 后台代码: 

复制代码代码如下:


/*此处放共用处理代码*/ 
switch($src) 

case "top": 
/*此处放处理代码*/ 
smarty_Output('top.html'); 
break; 
case "menu": 
/*此处放处理代码*/ 
smarty_Output('menu.html'); 
break; 
case "main": 
/*此处放处理代码*/ 
smarty_Output('main.html'); 
break; 
default: 
break; 


iframe.html: 

复制代码代码如下:


<frame src="iframe.php?src=top" name="topFrame" id="topFrame" scrolling="no"> 
<frameset cols="180,*" name="btFrame" id="btFrame" frameborder="NO" border="0" framespacing="0"> 
<frame src="iframe.php?src=menu" id="leftbar" noresize name="menu" scrolling="yes"> 
<frame src="iframe.php?src=main" id="rightbar" noresize name="main" scrolling="yes"> 
</frameset> 


通过这样处理,我感觉方便多了

标签:

相关文章

热门资讯

玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
配置IIS网站web服务器的安全策略配置解决方案
配置IIS网站web服务器的安全策略配置解决方案 2019-05-23
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情 2019-06-22
Nginx服务器究竟是怎么执行PHP项目
Nginx服务器究竟是怎么执行PHP项目 2019-05-24
返回顶部