程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> smarty巧妙處理iframe中內容頁,smartyiframe

smarty巧妙處理iframe中內容頁,smartyiframe

編輯:關於PHP編程

smarty巧妙處理iframe中內容頁,smartyiframe


做過後台的,應該都知道,經常要用到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>


通過這樣處理,我感覺方便多了

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved