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

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

WBOY
풀어 주다: 2016-06-13 08:45:02
원래의
1192명이 탐색했습니다.

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>
로그인 후 복사


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

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿