Xajax中文手册(三)

如何处理表单数据?
  xajax使得异步处理表单数据非常非常的简单. xajax.getFormValues()方法会自动的从表单提取数据,并作为一个参数提交给xajax注册的PHP函数.
  xajax.getFormValues() 仅仅需要一个参数, 可以是你需要处理得表单的id, 或者是一个实际的表单对象. 你也可以使用xajax.getFormValues作为一个参数给xajax 函数, 例如:

PHP:
  1.   xajax_processFormData (xajax.getFormValues ( 'formId' ) );

  xajax 会生成一个与表单数据对应的请求字符串给xajax服务器解析,然后以一个与表单数据对应的数组传递给PHP函数,就想你提交表单使用PHP的$_GET数组那么简单.
  xajax可以处理类似普通多维数组或者联合数组(哈希数组)等形式的复杂输入名字. 例如, 如果一个表单有三个多选框(checkboxes)并且都命名为 "checkbox[]", 但是值分别为 "check1", "check2", 和 "check3", 然后使用 xajax.getFormValues 函数作为参数传递给xajax 函数, 则 PHP 函数会接受到一个如下的数组:

PHP:
  1. array (
  2.    'checkbox' =>
  3.    array (
  4.      0 => 'check1',
  5.      1 => 'check2',
  6.      2 => 'check3',
  7.    ),
  8. )

作为函数参数的数组的结构与传统意义上提交表单之后的$_GET数组的结构相同. 你可以访问数组之中的checkbox 的数据: $aFormData['checkbox'][0]

如何给xajax增加定制功能?
  xajax可以使用各种附加的用户定制功能进行扩展. 正因为xajax是完全面向对象的,并且可以使用xajaxResponse的addScript()方法,所以他具有无限扩展的可能. 你可以创建你自己的xajax响应类,来继承xajaxResponse 类以及它的方法,并加上你自己定制的响应. 让我们用一个定制的增加选择组合框(select combo boxes)选项的响应指令的例子来说明. 你可以象下面这样扩展xajaxResponse 类:

PHP:
  1. class myxajaxResponse extends xajaxResponse
  2. [
  3.          function addAddOption ( $sSelectId, $sOptionText, $sOptionValue )
  4.          [
  5.                  $sScript    = "var objOption = new Option('". $sOptionText. "','". $sOptionValue. "');";
  6.                  $sScript .= "document.getElementById('". $sSelectId. "').options.add(objOption);";
  7.                  $this-> addScript ( $sScript );
  8.          ]
  9. ]

  现在, 取代xajaxResponse 对象的初始化, 把你自己的 myxajaxResponse 对象的初始化定义到你的 xajax PHP 函数之中:

PHP:
  1. $objResponse = new myxajaxResponse ( );
  2. $objResponse-> addAssign ( "div1", "innerHTML", "Some Text" );
  3. $objResponse-> addAddOption ( "select1", "New Option", "13" );
  4. return $objResponse;

  被调用时,这个方法将会发送需要的javascript到页面并执行. 当然你也有另外一种做法Alternatively, 你可以在你的程序之中创建一个如下的javascript函数:

JavaScript:
  1. <script type= "text/javascript">
  2. function addOption (selectId,txt,val )
  3. [
  4.          var objOption = new Option (txt,val );
  5.           document. getElementById (selectId ). options. add (objOption );
  6. ]
  7. </script>

  并且使用addScript() 调用这个方法:

PHP:
  1. $objResponse-> addScript ( "addOption('select1','New Option','13');" );

如何创建Loading...信息?
  xajax提供了一个简单但是重要的功能,那就是在xajax 进行服务器调用时模拟反馈用的“Loading...”信息。xajax已经定义了两个 Javascript函数:xajax.loadingFunction()和xajax.doneLoadingFunction(),你可以用你自己定义的Javascript函数来重新定义它们以满足项目的需要,例如:

JavaScript:
  1. xajax. loadingFunction = myCustomLoadingFunction;

或者

JavaScript:
  1. xajax. loadingFunction = function ( ) [xajax.$ ( 'loadingBar' ). style. display= 'block'; ];

转载于:https://www.cnblogs.com/webeasy/archive/2007/06/02/768465.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值