一、 HelloWrold步驟
PHP代碼
//服務器端
require_once ("../../xajax.inc.php");
//定義處理函數,
//並在處理函數中實例xajaxResponse對象,
//調用其方法控制控件的值,再返回該對象
function myFunc($text){
//實例響應對象
$objResponse = new xajaxResponse();
//改變控件值
$objResponse->addAssign("div1","innerHTML",$text);
return $objResponse;
}
//初始化xajax
$xajax = new xajax(); //可以指定服務器端的響應程序
$xajax->registerFunction("myFunc"); //注冊處理函數
//開始接受請求
$xajax->processRequests();
PHP代碼
//客戶端(客戶端與服務器端應共享同一個xajax對象,可做成公共配置文件)
//在<head>區加入script
$xajax->printJavascript('../'); //可用變量,由模板解析
//定義接受新內容的控件
<div id="div1" name="div1"> </div>
//執行方法,xajax_為前綴,myFunc為注冊的函數名
<button onclick="xajax_myFunc(‘hello’)" >Click Me</button>
總述:先構造一個xajax對象供服務器端和客戶端共用,再定義相應的處理函數(在函數中構造xajaxResponse對象,並使用該對象的 addAssing等方法對客戶端控件操作),注冊處理函數然後使用processRequests方法開始運行.客戶端需要調用xajax對象的 printJavascript方法來生成javascript代碼(加在head段),再定義觸發處理的事件,處理方法名為”xajax_”+注冊時的 函數名,該前綴可以在初始化xajax時修改
二、常用方法
xajax對象:
xajax($sRequestURI="",$sWrapperPrefix="xajax_",$sEncoding=
XAJAX_DEFAULT_CHAR_ENCODING,$bDebug=false);
構造函數,$sRequestURI 服務器uri,$sWrapperPrefix 客戶端調用時的前綴,$sEncoding 編碼
registerFunction($mFunction,$sRequestType=XAJAX_POST)
注冊處理函數,$mFunction 函數名,$sRequestType 提交類形,另一選擇為XAJAX_GET
可以使用類方法:
registerFunction(array "myFunc",&$myObj,"myMethod"));
'myFunc' 供前端調用的函數名 $myObject,類實例 'myMethod' 類的方法
registerExternalFunction($mFunc,$sIncludeFile,$sRequestType=XAJAX_POST)
$sIncludeFile 包含函數定義的外部文件路徑,其它同registerFunction 用於引入單獨函數定義文件
registerCatchAllFunction($mFunction)
定義一個默認處理函數,當前端調用了一個不存在的函數時,執行此操作
registerPreFunction($mFunction)
定義預處理函數,前端調用任何函數,都先調用此方法
processRequests() //開始執行
printJavascript($sJsURI="", $sJsFile=NULL)
輸出前端javascript代碼,
getJavascript($sJsURI="", $sJsFile=NULL)
將應用於前端的javascript代碼輸出到變量,以便模板引擎使用
xajaxResponse對象
xajaxResponse($sEncoding=XAJAX_DEFAULT_CHAR_ENCODING, $bOutputEntities=false)
構造函數,可以指明編碼或是否轉換html標記
setCharEncoding($sEncoding); //改變編碼
addConfirmCommands($iCmdNumber, $sMessage)
用戶確認操作. $iCmdNumber 如果選’取消’,緊接著要跳過的命令數,$sMessage提示信息
addAssign($sTarget,$sAttribute,$sData)
改變$sTarget的$sAttribute屬性的值為$sData;
addAppend($sTarget,$sAttribute,$sData)
將新值加在原值的後面
addPrepend($sTarget,$sAttribute,$sData)
將新值插到原值的前面
addReplace($sTarget,$sAttribute,$sSearch,$sData)
用$sData替換原值中的$sSearch
addClear($sTarget,$sAttribute) //清空原值
addAlert($sMsg) //生成一個alert對話框
addRedirect($sURL) //重定向
addScript($sJS) //執行javascript代碼
addScriptCall("myJSFunction", "arg 1", "arg 2", 12345);
調用javascript的函數myJSFunction
addRemove($sTarget) //移除一個元素
addCreate($sParent, $sTag, $sId, $sType="")
在$sParent中增加一個子元素$sTag
//插入元素
addInsert($sBefore, $sTag, $sId)
addInsertAfter($sAfter, $sTag, $sId)
//加入表單項
addCreateInput($sParent, $sType, $sName, $sId)
addInsertInput($sBefore, $sType, $sName, $sId)
addInsertInputAfter($sAfter, $sType, $sName, $sId)
//加入事件處理
addEvent("contentDiv", "onclick", "alert('Hello World');");
//為contentDiv控件加入onclick事件
addHandler($sTarget,$sEvent,$sHandler)
addHandler("contentDiv", "onclick", "clickit");
//為contentDiv加入onclic事件,執行javascript方法clickit
//移除事件處理
addRemoveHandler("contentDiv", "onclick", "content_click");
//加入外部js文件
addIncludeScript("functions.js");
//返回response,可以直接返回$ajaxResponse();
getXML()
另外:在前端程序,可使用如下方法將form的值提交到後端
xajax_myFunc(xajax.getFormValues('formId'));
傳入的是form的id,如果加入第二參數為true;則form中有disable屬性的控件值也被傳入
本文來自:網頁教學基地(www.wyzu.cn)原文鏈接:http://www.wyzu.cn/data/2008/1225/article_34106.html