什么是javascrīpt:;" ōnClick="tagshow(event, 'xajax');
![](/icons/15316return.gif)
false;">xajax?
Xajax是
![](/icons/15316yi.gif)
个开源
![](/icons/15316de.gif)
PHP 类库 它能够让你黏合HTML、CSS、Javascrīpt和PHP
![](/icons/15316dou.gif)
轻而易举
![](/icons/15316de.gif)
开发功能强大、基于WEB
![](/icons/15316de.gif)
AJAX应用软件Software. 使用xajax开发
![](/icons/15316de.gif)
应用软件Software
![](/icons/15316dou.gif)
无需重新调入页面
![](/icons/15316dou.gif)
就能够异步
![](/icons/15316diaoyong.gif)
服务器端
![](/icons/15316de.gif)
PHP
![](/icons/15316hanshu.gif)
和更新内容.
xajax 如何工作?
你
![](/icons/15316de.gif)
应用软件Software需要异步
![](/icons/15316diaoyong.gif)
![](/icons/15316de.gif)
PHP
![](/icons/15316hanshu.gif)
![](/icons/15316dou.gif)
xajax
![](/icons/15316de.gif)
PHP对象都生成了对应
![](/icons/15316de.gif)
封装好了
![](/icons/15316de.gif)
Javascrīpt
![](/icons/15316hanshu.gif)
. 当被
![](/icons/15316diaoyong.gif)
时
![](/icons/15316dou.gif)
封装
![](/icons/15316de.gif)
![](/icons/15316hanshu.gif)
使用Javascrīpt
![](/icons/15316de.gif)
XMLHttpRequest对象和服务器异步通讯
![](/icons/15316dou.gif)
![](/icons/15316diaoyong.gif)
xajax对象对应
![](/icons/15316de.gif)
PHP
![](/icons/15316hanshu.gif)
.
![](/icons/15316diaoyong.gif)
结束后, PHP
![](/icons/15316hanshu.gif)
由xajax返回
![](/icons/15316yi.gif)
个xajax
![](/icons/15316de.gif)
XML响应传递给应用
![](/icons/15316chengxu.gif)
. XML响应包含了特定
![](/icons/15316de.gif)
指令和数据
![](/icons/15316dou.gif)
他们可以被xajax
![](/icons/15316de.gif)
Javascrīpt消息分析器解析
![](/icons/15316dou.gif)
并且被用于更新你
![](/icons/15316de.gif)
应用
![](/icons/15316chengxu.gif)
![](/icons/15316de.gif)
内容.
为什么我要使用xajax代替其他PHP
![](/icons/15316de.gif)
ajax库?
你应该选择
![](/icons/15316yi.gif)
个最是和你
![](/icons/15316de.gif)
项目需要
![](/icons/15316de.gif)
库.
xajax 提供了以下
![](/icons/15316de.gif)
功能, 它们使得ajax富有特色而又功能强大:
Xajax特殊
![](/icons/15316de.gif)
XML 响应 / javascrīpt 消息分析系统 帮助你做到, 自动
![](/icons/15316de.gif)
处理
![](/icons/15316hanshu.gif)
返回
![](/icons/15316de.gif)
数据
![](/icons/15316dou.gif)
按照PHP
![](/icons/15316hanshu.gif)
返回
![](/icons/15316de.gif)
指令更新内容或者状态.
![](/icons/15316yinwei.gif)
xajax作了这些工作Because xajax does the work, 你不需要写javascrīpt
![](/icons/15316de.gif)
回调处理
![](/icons/15316hanshu.gif)
.
Xajax反对将代码和数据紧密地杂糅在
![](/icons/15316yi.gif)
起
![](/icons/15316de.gif)
主张, 并且保持xajax
![](/icons/15316de.gif)
代码从和他代码分离.
![](/icons/15316yinwei.gif)
它是对象构造
![](/icons/15316de.gif)
, 你可以加上自己定制
![](/icons/15316de.gif)
功能给xajax去扩展xajaxResponse 类和使用addscrīpt思路方法.
xajax 可以工作在 Firefox, Mozilla, 大部分基于 Mozilla
![](/icons/15316de.gif)
浏览器, Internet Explorer, 和 Safari.
除了更新元素
![](/icons/15316de.gif)
值和内含
![](/icons/15316de.gif)
HTML内容(innerHTML), xajax 还能用于更新样式(styles), css 类, 多选和单选按钮选择,甚至可以更新任何元素
![](/icons/15316de.gif)
属性.
xajax 支持使用
![](/icons/15316yi.gif)
维或者多维
![](/icons/15316shuzu.gif)
、关联
![](/icons/15316shuzu.gif)
(哈希
![](/icons/15316shuzu.gif)
) 作为xajax
![](/icons/15316hanshu.gif)
![](/icons/15316de.gif)
参数从javascrīpt传送给PHP. 反的Additionally, 如果你传送
![](/icons/15316yi.gif)
个javascrīpt
![](/icons/15316de.gif)
对象给xajax
![](/icons/15316hanshu.gif)
![](/icons/15316dou.gif)
PHP
![](/icons/15316hanshu.gif)
将接受
![](/icons/15316yi.gif)
个描叙对象属性
![](/icons/15316de.gif)
关联
![](/icons/15316shuzu.gif)
(哈希
![](/icons/15316shuzu.gif)
).
xajax 提供了
![](/icons/15316yi.gif)
种简单
![](/icons/15316de.gif)
异步表单处理方式. 使用 xajax.getFormValues
![](/icons/15316kh.gif)
javascrīpt 思路方法, 你可以轻而易举
![](/icons/15316de.gif)
在表单的中提交
![](/icons/15316yi.gif)
个描绘值
![](/icons/15316de.gif)
![](/icons/15316shuzu.gif)
作为参数传送到xajax异步处理
![](/icons/15316hanshu.gif)
:
xajax_processForm(xajax.getFormValues('formId');
它可以处理复杂
![](/icons/15316de.gif)
input 元素名称
![](/icons/15316dou.gif)
例如 "checkbox
![](/icons/15316zhk2.gif)
![](/icons/15316zhk2.gif)
" 或者 "name[first]" 产生
![](/icons/15316de.gif)
多维或者关联
![](/icons/15316shuzu.gif)
(哈希
![](/icons/15316shuzu.gif)
), 就是普通提交表单那样使用PHP
![](/icons/15316de.gif)
$_GET
![](/icons/15316shuzu.gif)
使用xajax你可以动态
![](/icons/15316de.gif)
发送附加
![](/icons/15316de.gif)
javascrīpt作为请求
![](/icons/15316de.gif)
响应到你
![](/icons/15316de.gif)
应用软件Software中运行
![](/icons/15316dou.gif)
而这就和动态
![](/icons/15316de.gif)
更新元素
![](/icons/15316de.gif)
属性
![](/icons/15316yi.gif)
样方便.
Xajax会自动比较PHP
![](/icons/15316hanshu.gif)
返回
![](/icons/15316de.gif)
数据和你已经标记需要修改
![](/icons/15316de.gif)
元素属性. 只有当新
![](/icons/15316de.gif)
数据确实可以改变现有
![](/icons/15316de.gif)
属性
![](/icons/15316dou.gif)
属性才会真
![](/icons/15316de.gif)
被更新. 这将可消除
![](/icons/15316chengxu.gif)
在
![](/icons/15316yi.gif)
定时间间隔内更新和当前内容相同或者区别
![](/icons/15316de.gif)
内容而出现
![](/icons/15316de.gif)
明显
![](/icons/15316de.gif)
闪烁.
每
![](/icons/15316yi.gif)
个通过xajax简单注册
![](/icons/15316de.gif)
![](/icons/15316hanshu.gif)
都可以有区别
![](/icons/15316de.gif)
请求方式. 所有
![](/icons/15316de.gif)
![](/icons/15316hanshu.gif)
默认使用POST方式
![](/icons/15316dou.gif)
除非你明确
![](/icons/15316de.gif)
指定使用GET方式. 如果使用GET请求
![](/icons/15316dou.gif)
你必须非常明确
![](/icons/15316de.gif)
考虑它确实是你所需要
![](/icons/15316de.gif)
如果没有指定URI
![](/icons/15316dou.gif)
xajax将设法自动确定脚本
![](/icons/15316de.gif)
URI. Xajax
![](/icons/15316de.gif)
自动确定算法经过了充分
![](/icons/15316de.gif)
验证
![](/icons/15316dou.gif)
确保在大部分HTTPS或者未知端口
![](/icons/15316de.gif)
HTTP服务器上也可以正常
![](/icons/15316de.gif)
工作.
Xajax使用UTF8编码所有
![](/icons/15316de.gif)
请求和响应
![](/icons/15316dou.gif)
以确保支持绝大部分
![](/icons/15316de.gif)
![](/icons/15316zifu.gif)
和语言. Xajax已经成功测试了多种区别
![](/icons/15316de.gif)
UNICODE
![](/icons/15316zifu.gif)
![](/icons/15316dou.gif)
包括Spanish, Russian, Arabic, and Hebrew
几乎所有xajax生成
![](/icons/15316de.gif)
javascrīpt都可以通过动态
![](/icons/15316de.gif)
外部javascrīpt包含到你
![](/icons/15316de.gif)
web
![](/icons/15316chengxu.gif)
的中. 当你在浏览器的中查看
![](/icons/15316chengxu.gif)
![](/icons/15316de.gif)
源代码时
![](/icons/15316dou.gif)
不会有Javascrīpt
![](/icons/15316de.gif)
![](/icons/15316hanshu.gif)
定义混杂在HTML标记的中.
Xajax可以使用在Smarty模板系统的中
![](/icons/15316dou.gif)
仅仅需要创建
![](/icons/15316yi.gif)
个smarty变量就可以包含xajax
![](/icons/15316de.gif)
javascrīpt:
$smarty->assign('xajax_javascrīpt', $xajax->getJavascrīpt
![](/icons/15316kh.gif)
);
然后你可以使用在header模版的中使用
{$xajax_javascrīpt}
从而把xajax应用到你
![](/icons/15316de.gif)
站点.
如何在我
![](/icons/15316de.gif)
PHP脚本的中使用xajax?
Xajax
![](/icons/15316de.gif)
设计是如此
![](/icons/15316de.gif)
富有特色
![](/icons/15316dou.gif)
以至于不管是已有
![](/icons/15316de.gif)
web
![](/icons/15316chengxu.gif)
还是新
![](/icons/15316de.gif)
项目
![](/icons/15316dou.gif)
它都能够被极其简单
![](/icons/15316de.gif)
部署和应用. 仅仅需要 7步
![](/icons/15316dou.gif)
你就可以在几乎任何PHP脚本的中加入xajax
![](/icons/15316de.gif)
强大功能:
包含xajax类库:
require_once("xajax.inc.php");
例子化xajax 对象:
$xajax =
![](/icons/15316new.gif)
xajax
![](/icons/15316kh.gif)
;
注册你需要通过xajax
![](/icons/15316diaoyong.gif)
![](/icons/15316de.gif)
PHP
![](/icons/15316hanshu.gif)
![](/icons/15316de.gif)
名称:
$xajax->registerFunction("myFunction");
编写注册
![](/icons/15316de.gif)
PHP
![](/icons/15316hanshu.gif)
![](/icons/15316dou.gif)
并且在
![](/icons/15316hanshu.gif)
的中使用xajaxResponse 对象返回XML指令:
function myFunction($arg)
{
// 对$arg做
些基本处理例如从数据库检索数据
// 然后把结果赋值给变量
例如$
Content
// 例子化xajaxResponse 对象
$objResponse =
xajaxResponse
;
// 添加指令到响应的中
用于指派
//指定元素(例如id="SomeElementId")
innerHTML属性
新
内容
$objResponse->addAssign("SomeElementId","innerHTML", $
Content);
//返回xajaxResponse 对象生成
XML响应
$objResponse->getXML
;
}
在你
![](/icons/15316de.gif)
脚本输出任何信息的前
![](/icons/15316dou.gif)
![](/icons/15316diaoyong.gif)
xajax用于接管请求:
$xajax->processRequests
![](/icons/15316kh.gif)
;
在页面
![](/icons/15316de.gif)
<head></head> 标签的间, 告诉xajax生成所必需
![](/icons/15316de.gif)
Javascrīpt:
<?php $xajax->pr
![](/icons/15316int.gif)
Javascrīpt
![](/icons/15316kh.gif)
; ?>
在
![](/icons/15316chengxu.gif)
中
![](/icons/15316dou.gif)
从Javascrīpt事件或者
![](/icons/15316hanshu.gif)
![](/icons/15316diaoyong.gif)
前面注册
![](/icons/15316de.gif)
![](/icons/15316hanshu.gif)
:
<div id="SomeElementId"></div>
<button ōnclick="xajax_myFunction(SomeArgument);">
就这么简单. xajax 会处理其他所有
![](/icons/15316de.gif)
事情. 你所要做
![](/icons/15316de.gif)
主要工作就是编写PHP
![](/icons/15316hanshu.gif)
![](/icons/15316dou.gif)
然后从
![](/icons/15316hanshu.gif)
的中返回xajax
![](/icons/15316de.gif)
XML响应
![](/icons/15316dou2.gif)
而后者通过xajaxResponse类可以非常简单
![](/icons/15316de.gif)
生成.
如何异步更新内容?
Xajax最富有特色
![](/icons/15316de.gif)
功能或许就是xajaxResponse类. 其他
![](/icons/15316de.gif)
Ajax库需要你自己编写Javascrīpt
![](/icons/15316de.gif)
回调句柄去处理
![](/icons/15316yi.gif)
个异步请求返回
![](/icons/15316de.gif)
数据并更新内容. xajax, 从另外
![](/icons/15316yi.gif)
个角度来说, 允许你使用PHP简单
![](/icons/15316de.gif)
控制内容. xajaxResponse 让你在PHP
![](/icons/15316hanshu.gif)
的中创建XML指令返回给你
![](/icons/15316de.gif)
![](/icons/15316chengxu.gif)
. XML将被xajax
![](/icons/15316de.gif)
消息分析器解析
![](/icons/15316dou.gif)
指令将告诉xajax如何更新
![](/icons/15316chengxu.gif)
![](/icons/15316de.gif)
内容和状态. xajaxResponse类目前提供了以下指令:
addAssign($sTargetId,$sAttribute,$sData)
给命名为$sTargetId
![](/icons/15316de.gif)
元素
![](/icons/15316de.gif)
$sAttribute属性赋值$sData
$objResponse->addAssign("contentDiv","innerHTML","Some Text");
$objResponse->addAssign("checkBox1","checked","true");
addAppend($sTargetId,$sAttribute,$sData)
给命名为$sTargetId
![](/icons/15316de.gif)
元素
![](/icons/15316de.gif)
$sAttribute属性追加值$sData
$objResponse->addAppend("contentDiv","innerHTML","Some Text");
addPrepend($sTargetId,$sAttribute,$sData)
预备给命名为$sTargetId
![](/icons/15316de.gif)
元素
![](/icons/15316de.gif)
$sAttribute属性赋值$sData
$objResponse->addPrepend("contentDiv","innerHTML","Some Text");
addReplace($sTargetId,$sAttribute,$sSearch,$sData)
替换命名为$sTargetId
![](/icons/15316de.gif)
元素
![](/icons/15316de.gif)
$sAttribute属性
![](/icons/15316de.gif)
值的中
![](/icons/15316de.gif)
$sSearch为$sData
$objResponse->addReplace("contentDiv","innerHTML","text","<strong>text</strong>");
addClear($sTargetId,$sAttribute)
清空命名为$sTargetId
![](/icons/15316de.gif)
元素
![](/icons/15316de.gif)
$sAttribute属性
![](/icons/15316de.gif)
值
$objResponse->addClear("Input1","value");
addCreate($sParentId, $sTagname, $sId, $sType)
在已经存在
![](/icons/15316de.gif)
命名为$sParentId
![](/icons/15316de.gif)
元素下添加
![](/icons/15316yi.gif)
个名叫$sTagName
![](/icons/15316de.gif)
子元素
![](/icons/15316dou.gif)
并且把他
![](/icons/15316de.gif)
id赋值为$sId
![](/icons/15316dou.gif)
可选
![](/icons/15316de.gif)
类型赋值为 $sType.
$objResponse->addCreate("form1","input", "pass", "password");
addRemove($sElementId)
从你
![](/icons/15316de.gif)
![](/icons/15316chengxu.gif)
的中移除命名为$sElementId
![](/icons/15316de.gif)
元素
$objResponse->addRemove("div1");
addAlert($sMsg)
显示
![](/icons/15316yi.gif)
个内容为 $sMsg
![](/icons/15316de.gif)
警告框(Javascrīpt
![](/icons/15316de.gif)
Alert)
$objResponse->addAlert("This is some text");
addscrīpt($sJS)
执行Javascrīpt代码 $sJS (演示代码原文有误)
$objResponse->addscrīpt("var txt = prompt('get some text');");
![](/icons/15316yi.gif)
个独立
![](/icons/15316de.gif)
XML响应可能包含多个指令, 他们将按照加入响应
![](/icons/15316de.gif)
顺序执行. 让我们用
![](/icons/15316yi.gif)
个用户在你
![](/icons/15316de.gif)
![](/icons/15316chengxu.gif)
的中点击按钮为例来进行介绍说明. _disibledevent=
![](/icons/15316new.gif)
Option(txt,val);
document.getElementById(selectId).options.add(objOption);
}
</scrīpt>
并且使用addscrīpt
![](/icons/15316diaoyong.gif)
这个思路方法:
$objResponse->addscrīpt("addOption('select1','New Option','13');");
我能在私有或者收费产品的中使用xajax吗?
简而言的: 能
![](/icons/15316dou.gif)
只要你愿意.
xajax PHP 类库
![](/icons/15316de.gif)
发布遵循 GNU Lesser General Public License (LGPL).