## 使用frameset
在許多應用程序內,尤其是“后臺”類型的應用程序,很多時候都會用到frameset,也就是HTML的框架頁面。
區分一下:
- PHP“框架”是php framework,泛指PHP的一種輔助應用程序,比如SpeedPHP框架
- HTML的“框架”是frameset,iframe等,泛指HTML的一個標簽,主要用于在頁面內顯示別的網頁。
本文主要講述的是frameset,也就是HTML的頁面框架的使用,還有一些常見問題的處理。
在HTML頁面中,使用frameset其實相等于使用<a>標簽來鏈接一個網頁,只是該網頁的顯示是在當前頁面之中。所以,在frameset的屬性——網址(src),同樣需要使用url()函數來進行網址的生成(生成URL)。
[例子下載](images/7.zip)
例子:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
</head>
<frameset rows="80,*" frameborder="no" border="0" framespacing="0">
<frame src="<{url c="main" a="top"}>" name="topFrame" scrolling="No" noresize="noresize" id="topFrame" title="topFrame" />
<frame src="<{url c="main" a="bottom"}>" name="mainFrame" id="mainFrame" title="mainFrame" />
</frameset>
<noframes><body>
</body>
</noframes></html>
這里是一個比較標準的frameset實例,頁面被分為上下兩個區域,加上本身頁面一共是三個頁面(HTML)
從例子可以看出,frameset的鏈接地址src,使用的仍然是url()來進行網址的生成。
protected/controller/MainController.php文件
<?php
class MainController extends BaseController {
function actionIndex(){
$this->display("main_index.html");
}
function actionTop(){
$this->display("main_top.html");
}
function actionBottom(){
$this->display("main_bottom.html");
}
}
這里MainController.php文件,通過三個動作actionIndex(),actionTop(),actionBottom()分別生成了三個頁面,對應HTML頁面中的三個頁面。
從上面例子可以看出,其實frameset是多個頁面的集合,所以從SpeedPHP的角度來看,就需要有多個action來一一對應多個頁面。
常見問題:
1. frameset頁面空白? 可以檢查一下頁面編碼(要統一編碼),比如UTF8,需要檢查頁面的<meta>,PHP文件和模板文件的文件編碼等等。
2. 要傳遞一個參數到某個frame?比如說上面例子中,我們需要傳遞一個ID到top模板中,那么就需要在url()構造的地址中繼續傳遞:<{url c="main" a="top" id=1000}>,然后在MainController.php的function actionTop()內可以使用arg('id')接收并進行處理。
3. 頁內框架(iframe)怎么樣使用? 和frameset一樣,iframe也需要通過url()來構造iframe的src地址。比如:<iframe src="<{url c="main" a="myhtml"}>"></iframe>。
4. 在框架(frameset)內點擊某個鏈接,希望是另一個框架(frame)改變并顯示鏈接的頁面,怎么做? 每個frameset都有自己的name屬性,比如上面的top部分的frame的name是name="topFrame",所以,可以在鏈接<a>中的target屬性中設置為topFrame,那么點擊這個鏈接就會在top中打開了。<a href="<{url c="main" a="othertop"}>" target="topFrame">點擊這里</a>
- 自述
- 一、入門教程
- 1. 開始使用SpeedPHP
- 2. Hello World
- 3. 理解MVC
- 4. 制作留言本
- 5. 數據操作及Ajax
- 二、框架概述
- 1. 特色
- 2. 版權及開源協議
- 3. 開發環境
- 4. 編碼版本
- 5. SAE平臺使用
- 三、開發指南
- 1. 開發流程
- 2. 架構及擴展
- 3. 程序目錄結構
- 4. 命名建議
- 5. 安全建議
- 6. 用戶自定義
- 7. 模塊modules
- 四、訪問交互
- 1. 表單提交及數據獲取
- 2. session/cookie的使用
- 3. 偽靜態及URL跳轉
- 4. 使用frameset
- 5. 模板引擎特性和使用方法
- 五、數據操作
- 1. 建立數據模型類
- 2. 數據操作教程
- 3. 分頁
- 4. SQL支持及關聯實現
- 5. 多數據庫、主從庫配置