专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »PHP教程 » phpxajax:AJAX开发包-Xajax 一个很棒的php的ajax库 »正文

phpxajax:AJAX开发包-Xajax 一个很棒的php的ajax库

来源: 发布时间:星期一, 2009年1月12日 浏览:142次 评论:0
  什么是javascrīpt:;" ōnClick="tagshow(event, 'xajax'); false;">xajax?

  Xajax是个开源 PHP 类库 它能够让你黏合HTML、CSS、Javascrīpt和PHP轻而易举开发功能强大、基于WEBAJAX应用软件Software. 使用xajax开发应用软件Software无需重新调入页面就能够异步服务器端PHP和更新内容.

  xajax 如何工作?

  你应用软件Software需要异步PHP xajaxPHP对象都生成了对应封装好了Javascrīpt. 当被封装使用JavascrīptXMLHttpRequest对象和服务器异步通讯xajax对象对应PHP. 结束后, PHP由xajax返回个xajaxXML响应传递给应用. XML响应包含了特定指令和数据他们可以被xajaxJavascrīpt消息分析器解析并且被用于更新你应用内容.

  为什么我要使用xajax代替其他PHPajax库?

  你应该选择个最是和你项目需要库.

  xajax 提供了以下功能, 它们使得ajax富有特色而又功能强大:

  Xajax特殊 XML 响应 / javascrīpt 消息分析系统 帮助你做到, 自动处理返回数据按照PHP返回指令更新内容或者状态. xajax作了这些工作Because xajax does the work, 你不需要写javascrīpt回调处理.

  Xajax反对将代码和数据紧密地杂糅在主张, 并且保持xajax代码从和他代码分离. 它是对象构造, 你可以加上自己定制功能给xajax去扩展xajaxResponse 类和使用addscrīpt思路方法.

  xajax 可以工作在 Firefox, Mozilla, 大部分基于 Mozilla 浏览器, Internet Explorer, 和 Safari.

  除了更新元素值和内含HTML内容(innerHTML), xajax 还能用于更新样式(styles), css 类, 多选和单选按钮选择,甚至可以更新任何元素属性.

  xajax 支持使用维或者多维、关联(哈希) 作为xajax参数从javascrīpt传送给PHP. 反的Additionally, 如果你传送个javascrīpt对象给xajaxPHP将接受个描叙对象属性关联(哈希).

  xajax 提供了种简单异步表单处理方式. 使用 xajax.getFormValues javascrīpt 思路方法, 你可以轻而易举在表单的中提交个描绘值作为参数传送到xajax异步处理:

  xajax_processForm(xajax.getFormValues('formId');

  它可以处理复杂input 元素名称 例如 "checkbox" 或者 "name[first]" 产生多维或者关联(哈希), 就是普通提交表单那样使用PHP$_GET

  使用xajax你可以动态发送附加javascrīpt作为请求响应到你应用软件Software中运行而这就和动态更新元素属性样方便.

  Xajax会自动比较PHP返回数据和你已经标记需要修改元素属性. 只有当新数据确实可以改变现有属性属性才会真被更新. 这将可消除定时间间隔内更新和当前内容相同或者区别内容而出现明显闪烁.

  每个通过xajax简单注册都可以有区别请求方式. 所有默认使用POST方式除非你明确指定使用GET方式. 如果使用GET请求你必须非常明确考虑它确实是你所需要

  如果没有指定URIxajax将设法自动确定脚本URI. Xajax自动确定算法经过了充分验证确保在大部分HTTPS或者未知端口HTTP服务器上也可以正常工作.

  Xajax使用UTF8编码所有请求和响应以确保支持绝大部分和语言. Xajax已经成功测试了多种区别UNICODE包括Spanish, Russian, Arabic, and Hebrew

  几乎所有xajax生成javascrīpt都可以通过动态外部javascrīpt包含到你web的中. 当你在浏览器的中查看源代码时不会有Javascrīpt定义混杂在HTML标记的中.

  Xajax可以使用在Smarty模板系统的中仅仅需要创建个smarty变量就可以包含xajaxjavascrīpt:

  $smarty->assign('xajax_javascrīpt', $xajax->getJavascrīpt);

  然后你可以使用在header模版的中使用

  {$xajax_javascrīpt}

  从而把xajax应用到你站点.

  如何在我PHP脚本的中使用xajax?

  Xajax设计是如此富有特色以至于不管是已有web还是新项目它都能够被极其简单部署和应用. 仅仅需要 7步你就可以在几乎任何PHP脚本的中加入xajax强大功能:

  包含xajax类库:

  require_once("xajax.inc.php");

  例子化xajax 对象:

  $xajax = xajax;

  注册你需要通过xajaxPHP名称:

  $xajax->registerFunction("myFunction");

  编写注册PHP并且在的中使用xajaxResponse 对象返回XML指令:

function myFunction($arg)
{
 // 对$arg做些基本处理例如从数据库检索数据
 // 然后把结果赋值给变量例如$Content
 // 例子化xajaxResponse 对象
 $objResponse = xajaxResponse;
 // 添加指令到响应的中用于指派
 //指定元素(例如id="SomeElementId")innerHTML属性内容
 $objResponse->addAssign("SomeElementId","innerHTML", $Content);
 //返回xajaxResponse 对象生成XML响应
  $objResponse->getXML;
}


  在你脚本输出任何信息的前xajax用于接管请求:

  $xajax->processRequests;

  在页面 <head></head> 标签的间, 告诉xajax生成所必需Javascrīpt:

  <?php $xajax->prJavascrīpt; ?>

  在从Javascrīpt事件或者前面注册:

  <div id="SomeElementId"></div>

  <button ōnclick="xajax_myFunction(SomeArgument);">

  就这么简单. xajax 会处理其他所有事情. 你所要做主要工作就是编写PHP然后从的中返回xajaxXML响应而后者通过xajaxResponse类可以非常简单生成.

  如何异步更新内容?

  Xajax最富有特色功能或许就是xajaxResponse类. 其他Ajax库需要你自己编写Javascrīpt回调句柄去处理个异步请求返回数据并更新内容. xajax, 从另外个角度来说, 允许你使用PHP简单控制内容. xajaxResponse 让你在PHP的中创建XML指令返回给你. XML将被xajax消息分析器解析指令将告诉xajax如何更新内容和状态. xajaxResponse类目前提供了以下指令:

  addAssign($sTargetId,$sAttribute,$sData)

  给命名为$sTargetId元素$sAttribute属性赋值$sData

  $objResponse->addAssign("contentDiv","innerHTML","Some Text");

  $objResponse->addAssign("checkBox1","checked","true");

  addAppend($sTargetId,$sAttribute,$sData)

  给命名为$sTargetId元素$sAttribute属性追加值$sData

  $objResponse->addAppend("contentDiv","innerHTML","Some Text");

  addPrepend($sTargetId,$sAttribute,$sData)

  预备给命名为$sTargetId元素$sAttribute属性赋值$sData

  $objResponse->addPrepend("contentDiv","innerHTML","Some Text");

  addReplace($sTargetId,$sAttribute,$sSearch,$sData)

  替换命名为$sTargetId元素$sAttribute属性值的中$sSearch为$sData

  $objResponse->addReplace("contentDiv","innerHTML","text","<strong>text</strong>");

  addClear($sTargetId,$sAttribute)

  清空命名为$sTargetId元素$sAttribute属性

  $objResponse->addClear("Input1","value");

  addCreate($sParentId, $sTagname, $sId, $sType)

  在已经存在命名为$sParentId元素下添加个名叫$sTagName子元素并且把他id赋值为$sId可选类型赋值为 $sType.

  $objResponse->addCreate("form1","input", "pass", "password");

  addRemove($sElementId)

  从你的中移除命名为$sElementId元素

  $objResponse->addRemove("div1");

  addAlert($sMsg)

  显示个内容为 $sMsg 警告框(JavascrīptAlert)

  $objResponse->addAlert("This is some text");

  addscrīpt($sJS)

  执行Javascrīpt代码 $sJS (演示代码原文有误)

  $objResponse->addscrīpt("var txt = prompt('get some text');");

  个独立XML响应可能包含多个指令, 他们将按照加入响应顺序执行. 让我们用个用户在你的中点击按钮为例来进行介绍说明. _disibledevent= Option(txt,val);
    document.getElementById(selectId).options.add(objOption);
}
</scrīpt>



  并且使用addscrīpt 这个思路方法:

  $objResponse->addscrīpt("addOption('select1','New Option','13');");

  我能在私有或者收费产品的中使用xajax吗?

  简而言的: 能只要你愿意.

  xajax PHP 类库发布遵循 GNU Lesser General Public License (LGPL).



0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: