Home >php教程 >php手册 >smarty巧妙处理iframe中内容页,smartyiframe

smarty巧妙处理iframe中内容页,smartyiframe

WBOY
WBOYOriginal
2016-06-13 08:45:021194browse

smarty巧妙处理iframe中内容页,smartyiframe

做过后台的,应该都知道,经常要用到iframe来处理导航,如果按一般的思路来做这个功能,还是挺简单的

可是当我用smarty的时候,就发现了问题,比如,一个iframeset分成了:头部top,左边menu,右边main,

正常情况,用smarty来处理的话,一般是这样:

如果3个页面仅仅只是静态页面的话,就是如下处理

iframe.html代码:

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

========================================================================

现在我们假设,我们现在要对这3个内容页分别进行分角色处理,不同角色,3个页面需要显示不同的效果

按上面的处理方法,我们就需要对3个页面分别处理,这样就自然的就多了冗余的处理,而且以后的维护也麻烦

于是我想到了下面的方法,独立出一个专门的处理程序iframe.php,通过条件来模拟出上面3个页面

直接贴代码了:

iframe.php 后台代码:

/*此处放共用处理代码*/<br /><br />switch($src)<br />{<br />      case "top":<br />         /*此处放处理代码*/<br />         smarty_Output('top.html');<br />         break;<br />      case "menu":<br />         /*此处放处理代码*/<br />         smarty_Output('menu.html');<br />         break;<br />      case "main":<br />         /*此处放处理代码*/<br />         smarty_Output('main.html');<br />         break;<br />      default:<br />         break;<br />}


iframe.html:

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


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

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