文章教程

18.4.4xajax应用实例

9/17/2020 9:26:54 PM 人评论 次浏览

18.4.4 xajax应用实例

这节通过一个xajax的应用实例,使读者了解xajax是如何在PHP程序中实现AJAX应用的。这个实例将在页面显示由服务器端生成XML响应,这个响应以XML指令的形式返回至浏览器端,xajax消息分析器获得该响应后,通知xajax如何更新页面。这个实例中,仅仅是将XML指令原封不动地显示到页面上。代码18-6.php是该应用实例的完整程序。

代码18-6 xajax应用实例18-6.php


01 <?php

02 require_once("xajax/xajax.inc.php");

03

04 $xajax=new xajax();//实例化xajax对象

05

06 //$xajax->debugOn();//打开ajax调试功能

07

08 //注册一个xajax调用的php函数名(与javascript中的函数名xajax_showOutput相对应)

09 $xajax->registerFunction("showOutput");

10

11 //编写上面已经注册的php函数,在此函数中用xajaxResponse对象来返回XML指令集

12 function showOutput()

13 {

14 $testResponse=new xajaxResponse();

15 $testResponse->addAlert("Hello");

16

17 $testResponse2=new xajaxResponse();

18 $testResponse2->loadXML($testResponse->getXML());

19 $testResponse2->addReplace("this","is","a","replacement");

20 $testResponseOutput=htmlspecialchars($testResponse2->getXML());

21

22 $objResponse=new xajaxResponse();

23

24 //使用xajaxResponse对象的addAssign方法添加XML指令,

25 //该指令将id为submittedDiv的元素的innerHTML属性更新为$testResponseOutput

26 $objResponse->addAssign("submittedDiv","innerHTML",$testResponseOutput);

27 return$objResponse;

28 }

29

30 $xajax->processRequests();//在脚本传送出任何东西前,xajax都要处理所有请求

31 ?>

32

33 <html>

34 <head>

35 <meta http-equiv="Content-Type"content="text/html;charset=utf-8"/>

36 <title>18-6.php-xajaxResponse Test</title>

37 <?php

38

39 //这代码使xajax对象可以生成所必需的JavaScript

40 $xajax->printJavascript("xajax/")

41 ?>

42 </head>

43 <body>

44

45 <!--在这里调用-->

46 <p><div onclick="xajax_showOutput();">单击这里显示响应XML</div></p>

47 <div id="submittedDiv">这里将被响应的XML指令所替换</div>

48

49 </body>

50 </html>


使用浏览器访问18-6.php,会看到如图18-4所示的效果。当单击页面上第1行文字时,第2行文字会被替换成XML响应指令,如图18-5所示。

图 18-4 xajax应用效果图(1)
图 18-5 xajax应用效果图(2)

【代码解析】这段代码按照18.4.3所述步骤,在PHP程序中使用xajax。这里对程序中的函数showOutput()做一些简要解释。程序就是在该函数中实现了XML指令。代码第15行,使用xajaxResponse类的对象testResponse调用其方法addAlert()来生成一个警告对话框的XML指令。这段指令在代码第18行被第2个xajaxResponse类对象testResponse2载入。

接下来,程序再次创建一个xajaxResponse类的对象objResponse,通过该对象调用addAssign()方法,通过该方法创建XML指令来更新页面id为submittedDiv元素的属性值。

教程类别