$objResponse->addEvent("contentDiv", "onclick", "alert(/'Hello World/');");
* addHandler(string $sTarget, string $sEvent, string $sHandler)
为ID是$sTarget的元素名为$sEvent的事件添加一个句柄$sHandler(即Javascript函数名),可觉得一个事件添加多个句柄。
PHP:
$objResponse->addHandler("contentDiv", "onclick", "content_click");
# addEvent与addHandler的区别:
addEvent体贴的是事件被触发,即onclick中的on-,addHandler体贴的是事件触发了什么操纵,即onclick中的click。
其不同雷同于为一个元素界说事件属性和利用addEventListener()要领界说一个事件句柄。
* addRemoveHandler(string $sTarget, string $sEvent, string $sHandler)
删除ID是$sTarget的元素名为$sEvent的事件中的句柄$sHandler。
PHP:
$objResponse->addRemoveHandler("contentDiv", "onclick", "content_click");
* addIncludeScript(string $sFileName)
包括名为$sFileName的Javascript文件。
PHP:
$objResponse->addIncludeScript("functions.js");
一个独立的XML响应大概包括多个指令, 他们将凭据插手响应的顺序执行. 让我们用一个用户在你的措施之中点击按钮为例来举办说明. Onclick事件挪用PHP函数对应的javascript封装.这个封装通过XMLHttpRequest发送异步请求随处事器给xajax挪用 PHP函数. PHP函数做了一次数据库查询, 处理惩罚了一些数据, 可能序列化. 然后你利用xajaxResponse类生成包括多个指令的xajax的XML响应 ,并回送给xajax的动静阐明器执行:
PHP:
$objResponse = new xajaxResponse();
$objResponse.addAssign("myInput1","value",$DataFromDatabase);
$objResponse.addAssign("myInput1","style.color","red");
$objResponse.addAppend("myDiv1","innerHTML",$DataFromDatabase2);
$objResponse.addPrepend("myDiv2","innerHTML",$DataFromDatabase3);
$objResponse.addReplace("myDiv3","innerHTML","xajax","<strong>xajax</strong>");
$objResponse.addScript("var x = prompt("Enter Your Name");");
return $objResponse;
xajax动静阐明器将会理会XML动静,并执行以下事情:
2. id为myInput1的元素的值将被赋值为 $DataFromDatabase的数据.
3. id为myInput1的元素的颜色将会变为red.
4. $DataFromDatabase2的数据会被追加到id为myDiv1的元素innerHTML之中.
5. $DataFromDatabase3的数据会被预先赋值给id为myDiv2的元素innerHTML之中.
6. id为myDiv3的元素的innerHTML 之中所有的"xajax"将被替换为"xajax"; 使得所有的单词 xajax 显示加粗.
7. 一个提示框将会显示,用来询问用户姓名,从提示框返回的值会被定名为x的javascript变量吸收.
所有这些都由组成的PHP函数在处事器端执行并返回xajax的XML响应.
如那里理惩罚表单数据?
xajax使得异步处理惩罚表单数据很是很是的简朴. xajax.getFormValues()要了解自动的从表单提取数据,并作为一个参数提交给xajax注册的PHP函数.
xajax.getFormValues() 仅仅需要一个参数, 可以是你需要处理惩罚得表单的id, 可能是一个实际的表单工具. 你也可以利用xajax.getFormValues作为一个参数给xajax 函数, 譬喻:
PHP:
xajax_processFormData(xajax.getFormValues('formId'));
xajax 会生成一个与表单数据对应的请求字符串给xajax处事器理会,然后以一个与表单数据对应的数组通报给PHP函数,就想你提交表单利用PHP的$_GET数组那么简朴.
xajax可以处理惩罚雷同普通多维数组可能连系数组(哈希数组)等形式的巨大输入名字. 譬喻, 假如一个表单有三个多选框(checkboxes)而且都定名为 "checkbox[]", 可是值别离为 "check1", "check2", 和 "check3", 然后利用 xajax.getFormValues 函数作为参数通报给xajax 函数, 则 PHP 函数会接管到一个如下的数组:
PHP:
array (
'checkbox' =>
array (
0 => 'check1',
1 => 'check2',
2 => 'check3',
),
)
作为函数参数的数组的布局与传统意义上提交表单之后的$_GET数组的布局沟通. 你可以会见数组之中的checkbox 的数据: $aFormData['checkbox'][0]