手机
当前位置:查字典教程网 >编程开发 >php教程 >smarty巧妙处理iframe中内容页的代码
smarty巧妙处理iframe中内容页的代码
摘要:废话不多说,进去正题做过后台的,应该都知道,经常要用到iframe来处理导航,如果按一般的思路来做这个功能,还是挺简单的可是当我用smart...

废话不多说,进去正题

做过后台的,应该都知道,经常要用到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>

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

【smarty巧妙处理iframe中内容页的代码】相关文章:

人大复印资料处理程序_输入篇

给多个地址发邮件的类

用libTemplate实现静态网页的生成

PHP自动生成月历代码

php eval函数一句话木马代码

php中smarty区域循环的方法

如何限制访问者的ip(PHPBB的代码)

人大复印资料处理程序_补充篇

php操作redis缓存方法分享

PHP模板引擎smarty详细介绍

精品推荐
分类导航