搜尋
首頁php教程php手册smarty巧妙处理iframe中内容页,smartyiframe

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>


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

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具