一、HelloWrold步骤
PHP代码
//
服务器端
require_once("../../xajax.inc.php");
//定义处理函数,
//并在处理函数中实例xajaxResponse对象
, //调用其方法控制控件的值
,再返回该对象
functionmyFunc($text){
//实例响应对象
$objResponse=newxajaxResponse();
//改变控件值
$objResponse->addAssign("div1","innerHTML",$text);
return$objResponse;
}
//初始化xajax
$xajax=newxajax();//可以指定
服务器端的响应程序
$xajax->registerFunction("myFunc");//注册处理函数
//开始接受请求
$xajax->processRequests();
PHP代码
//客户端(客户端与服务器端应共享同一个xajax对象,可做成公共配置文件)
//在<head>区加入script
$xajax->printJavascript('../');//可用变量,由模板解析
//定义接受新内容的控件
<divid="div1"name="div1"></div>
//执行方法,xajax_为前缀,myFunc为注册的函数名
<buttononclick="xajax_myFunc(‘hello’)">ClickMe</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","arg1","arg2",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('HelloWorld');");
//为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属性的控件值也被传入