Chinaunix首页 | 论坛 | 博客
  • 博客访问: 607093
  • 博文数量: 129
  • 博客积分: 8026
  • 博客等级: 中将
  • 技术积分: 1300
  • 用 户 组: 普通用户
  • 注册时间: 2006-02-21 14:39
文章分类

全部博文(129)

文章存档

2011年(1)

2007年(26)

2006年(102)

我的朋友

分类:

2006-05-26 14:35:03

一、 HelloWrold步骤
//服务器端
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();

//客户端(客户端与服务器端应共享同一个xajax对象,可做成公共配置文件)
 //在区加入script
 $xajax->printJavascript('../'); //可用变量,由模板解析
 //定义接受新内容的控件
 

 

 //执行方法,xajax_为前缀,myFunc为注册的函数名
 

总述:先构造一个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属性的控件值也被传入

 

阅读(1085) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~