文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Learn xajax in 10 Minutes

Learn xajax in 10 Minutes

时间:2007-07-21  来源:linxh

原文出自:http://wiki.xajaxproject.org/Zh:%E6%8C%87%E5%8D%97:Xajax%E5%8D%81%E5%88%86%E9%92%9F%E5%85%A5%E9%97%A8

在PHP程序中使用xajax

xajax被设计为无论在现存的还是新的项目中都十分容易使用。通过下面7个简单步骤,你就可以将xajax整合到你的项目中:

  1. 包含xajax的函数库文件:
    require_once("xajax.inc.php"); 
  2. 创建一个xajax对象:
    $xajax = new xajax(); 
  3. 注册你想要通过xajax调用的函数:
    $xajax->registerFunction("myFunction"); 
  4. 实现这些函数,并在这些函数中通过xajaxResponse对象返回XML命令:
    function myFunction($arg) {     /* 根据参数$arg执行适当的处理工作(比如查询数据库),并把结果保存在一个变量      * 比如$newContent中      */          /* 创建一个xajaxResponse对象 */     $objResponse = new xajaxResponse();          /* 在返回中加入一个命令来设置id为"SomeElementId"的元素的innerHTML属性为      * $newContent      */     $objResponse->addAssign("SomeElementId","innerHTML", $newContent);          //返回由objResponse对象创建的XML格式的返回内容 */     return $objResponse; } 
  5. 在你的程序发送输出之前,由xajax处理所有请求::
    $xajax->processRequests(); 
  6. 在你的HTML的<head></head> 标签之间加入下面一句以产生xajax初始化所需的代码:
    <?php $xajax->printJavascript(); ?>
  7. 在你的客户端代码中,通过事件或者在javascript函数中调用来使用xajax:
    <div id="SomeElementId"></div> <button onclick="xajax_myFunction(SomeArgument);"> 

整个过程就是这样. xajax---------------------------------------------------------------------------------------------- 它几乎为你完成所有其他事情. 现在你最大的任务就是完成一系列的PHP函数并在这些函数中返回xajax的XML格式响应,而这通过使用xajaxResponse 类已经变得十分简单.

我怎样实现异步更新我的内容?

或许xajax唯一的特色就是 xajaxResponse 类了. 其他Ajax库需要你自己实现javascript回调函数来处理从异步请求中返回的数据并更新网页内容。xajax则不一样, 它允许你更容易的在PHP中控制你的内容. xajaxResponse 类允许你从PHP函数中创建XML指令并返回到你的应用程序中. XML内容被xajax message pump解析,然后这些指令将会告诉xajax如何来更新你的应用程序中的内容以及它的状态. xajaxResponse 类目前可以提供不少有用的命令,比如Assign, 用来设置元素的属性; Append, 用来附加数据到页面中某元素的指定属性; Prepend, 用来添加数据到页面中某元素指定属性的值的开始位置; Replace, 用来查找替换属性值; Script, 用来运行直接返回的javascript代码; 还有Alert, 用来显示含有指定内容的警告框.

一个XML response 可以包含多个命令, 这些命令将会被按照它们被添加到response的先后顺序被执行. 例如, 比方一个用户点击了你的应用程序中的一个按钮. 点击按钮的"onclick"事件将会触发一个PHP函数的javascript包装函数. 这个包装函数将会通过XMLHttpRequest发送一个异步请求给服务器,然后在服务器上xajax将会调用对应的PHP函数. 这个PHP函数将会执行数据库查询、数据处理或序列化(数据保存)等功能. 最后,你使用xajaxResponse 类来产生一个包含多个命令的xajax XML 响应并送回到xajax message pump,这些命令将在客户端代码(HTML/javascript)中被执行:

$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(\"输入你的姓名\");"); return $objResponse; 

对于以上代码所产生的XML响应, xajax message pump 将解析并最终执行以下动作:

  • ID为myInput1的元素的值将被设为$DataFromDatabase。
  • ID为myInput1的元素的文本颜色将被设为红色。
  • 变量$DataFromDatabase2中的内容将被附到ID为myDiv1的元素的innerHTML最后。
  • 变量$DataFromDatabase3中的内容将被添加到ID为myDiv2的元素的innerHTML前面。
  • ID为myDiv3的innerHTML中出现的所有"xajax"字符串将被替换为"xajax"; 也就是说将所有的"xajax"设为粗体。
  • 将会出现一个对话框提示输入你的姓名,并且用户输入的内容会被放在名为x的javascript变量中。

以上所有这些功能都是在服务器端PHP函数中通过构造并返回一个XML响应来实现的。

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载