web is easy!

新传的web综合技术博客 javascript php asp web2.0 QQ:3608194

导航

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';];

posted on 2007-06-02 10:09  新传  阅读(521)  评论(0编辑  收藏  举报

收藏到QQ书签