正如前文介绍的XML只是数据的载体,因此不适合做数据存储。如果XML不能与数据库建立联系那么它的优势将变得毫无用处,毕竟XML的丰富与强大是需要有背后的数据库做支撑的。本节将通过一个例子,来展示如何通过数据驱动AJAX。广州网站建设
(1)首先创建一个数据库脚本,用来存放数据资料,代码如下:
广州网站建设
- SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
- --
- -- 数据库: 'test1'
- --
- -- --------------------------------------------------------
- --
- -- 表的结构 'xml'
- --
- CREATE TABLE 'xml' (
- 'id' int(10) NOT NULL auto_increment,
- 'name' varchar(20) NOT NULL,
- 'doning' varchar(20) NOT NULL,
- PRIMARY KEY ('id')
- ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ;
- --
- -- 导出表中的数据 'xml'
- --
- INSERT INTO 'xml' VALUES (1, 'Mark', '任务1');
- INSERT INTO 'xml' VALUES (2, 'Annie', '任务2');
- INSERT INTO 'xml' VALUES (3, 'Nathan', '任务3');
- INSERT INTO 'xml' VALUES (4, 'Rob', '任务4');
- INSERT INTO 'xml' VALUES (5, 'Chris', '任务5');
(2)创建一个文件名为xml.php的脚本文件,用来读取数据库中的数据,并生成标准的XML格式文件。代码如下:
广州网站设计
- <?php
- header ( 'Content-Type: text/xml' ); //header()函数声明文件类型
- echo '<?xml version="1.0" encoding="utf-8" ?>';
- echo '<family>';
- $db = mysql_connect ( $dbhost, $dbuser, $dbpass ); //数据库连接信息
- mysql_select_db ( 'test1' ); //选择指定的数据库
- $sql = "SELECT * FROM 'xml' LIMIT 0 , 30 ";
- $result = mysql_query ( $sql );
- $num_rows = mysql_num_rows ( $result );
- for($i = 0; $i < $num_rows; $i ++) {
- $array [$i] = mysql_fetch_row ( $result );
- //以下输出标签组成元素
- echo "<member>";
- echo "<name>" . $array [$i] [1] . "</name>";
- echo "<doing>" . $array [$i] [2] . "</doing>";
- echo "</member>";
- }
- echo '</family>';//输出标签
- ?>
【代码解读】
上述代码中,使用header()函数给浏览器声明一个表明文件类型的"头",再通过echo函数将标签元素直接输出到浏览器中,完成读取和生成XML格式文件。
(3)执行以上代码将获得一个标准的XML文档,效果如图9.4所示。广州网站设计
![]() |
| 图9.4 数据库中信息生成XML文档 |
广州网站设计
- <body>
- <p>
- <span id="name"></span>
- </p>
- <form>
- <input type="button" value="显示XML" id="ok" name="ok"onClick="showXml ('xml.php')" />
- </form>
- </body>
(5)在浏览器中重新运行AjaxDemo.html文件,效果如图9.5所示,可以看到第二列部分信息变成数据库中的内容了。
![]() |
| 图9.5 数据库驱动的AJAX应用 |
经过以上步骤,基本的AJAX应用流程就完整地实现了。网络上大量AJAX应用的基本结构和思路都是和本章介绍的相同,读者可以仔细体会。





