介紹php與ajax的應用:xajax基本(購物網站延伸教學)
xajax 是一個開源的 PHP 類庫,用來構建WEB上的Ajax 程式,它本身是一個以Server為主的Ajax函示庫,也就是說很多的商業邏輯將會放在Server Side的php程式裡。使用xajax開發的應用軟體,無需重新調入頁面,就能夠非同步調用伺服器端的PHP函數和更新內容。
xajax 最大的特色是支援 UTF-8 及 Smarty,client 端不用自己寫 callback,client 端送出運算請求給 Server 端後,Server 端可以直接把運算結果傳送到網頁元素上。至於 Smarty 支援的部份,因為 Client 端只需一行 $xajax->printJavascript(); 就可以產生 AJAX 所需的 Javascript,所以應該大部份的 Template engine 也都支援。
如何安裝xajax
xajax安裝環境:
- Apache Web伺服器或Windows XP/2003上的IIS伺服器
- PHP 4.3.x或PHP 5.x
- 流覽器最低要求:IE5.5,Firefox 1.0,或相當的基於Gecko內核的流覽器,Safari 1.3,Opera 8.5。老版本僅對GET方法有效。
安裝方式:
xajax 版本發佈
- xajax 0.2 = 穩定版 (當前版本號 0.2.5)
- xajax 0.5 = 測試版 (當前版本號 0.5 beta 2)
[ 按此下載xajax0.2.5 ]將套裝軟體解壓並將其拷貝至你的WEB站點目錄下。如果你願意,你可以在你的WEB伺服器下建立一個名稱為“xajax”的目錄,並將所有檔放進去(確信你要知道頁面的相對URL位址,你才能夠提供正確的xaja的安裝URL地址)。注意如果想讓常式生效,你必須將"examples"目錄下的"thewall"目錄設為可寫。
xajax使用範例
<?php require_once( 'xajax/xajax.inc.php' ); //引入xajax函式 //建立xajax物件 //以下決定是否要使用 xajax debug //註冊在php中所要呼叫的函式 //處理呼叫 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" <!–產生xajax初始化所需的代碼–> </head> <body> <!–用來觸發xajax事件的button–> </form> <!–顯示回傳結果的div–> </body> <?php //接收表單post的資料 if (trim($username) == "") //回傳xajaxResponse物件 } //回傳xajaxResponse物件 } |
詳細說明:
<?php require_once( 'xajax/xajax.inc.php' ); //引入xajax函式 //建立xajax物件 //以下決定是否要使用 xajax debug //註冊在php中所要呼叫的函式 //處理呼叫 |
初始化xajax函式,注意紅字部分為所要呼叫的function名稱。
<?php $xajax->printJavascript('xajax/'); ?> |
在你的HTML的<head></head> 標籤之間加入此php語法以產生xajax初始化所需的代碼。
<form id="form1" action="javascript:void(null);"> 請輸入你的大名:<input type="text" name="username"> <!–用來觸發xajax事件的button–> </form> <!–顯示回傳結果的div–> |
用來傳值的表單,注意紅字的部分為觸發xajax的方法。
- xajax_xxx():xxx的部分為之前呼叫的function名稱,如xajax_myFunction。
- xajax.getFormValues('xxx'):xajax可利用此方法取得表單所傳送的資料,xxx的部分為表單名稱,如xajax.getFormValues('form1')。
- <div id="outputDiv"></div>:用來顯示回傳訊息的div。
<?php function myFunction($aFormValues) { //創建一個xajaxResponse物件 $objResponse = new xajaxResponse(); //接收表單post的資料 if (trim($username) == "") //回傳xajaxResponse物件 } //回傳xajaxResponse物件 } |
被呼叫到的php function,注意紅字的部分就是之前呼叫的function名稱。
- $objResponse = new xajaxResponse():創建一個xajaxResponse物件,用來處理xajax回傳程序的物件。
- $objResponse->addAlert("xxx"):產生彈出訊息的JavaScript,xxx部分可填入想顯示的訊息。
- $objResponse->addAssign("outputDiv","innerHTML","xxx"):設定id為"outputDiv"的div元素的innerHTML屬性為"xxx",xxx部分可填入想顯示的訊息。
- return $objResponse:回傳xajaxResponse物件
以上所有這些功能都是在伺服器端PHP函數中通過構造並返回一個XML回應來實現的。