Ajax调用返回json,xml数据类型(0517--pm)

Posted 陌上薰初

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ajax调用返回json,xml数据类型(0517--pm)相关的知识,希望对你有一定的参考价值。

一、返回Json型数据:

1.主页面

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5 <title>无标题文档</title>
 6 <script src="../jquery-1.11.2.min.js"></script>
 7 </head>
 8 
 9 <body>
10 <select id="sel">
11 </select>
12 </body>
13 <script type="text/javascript">
14 $(document).ready(function(e) {
15     
16     $.ajax({
17         url:"ChuLi.php",
18         dataType:"JSON",
19         success: function(data){
20             
21             //alert(data);
22             var str = "";
23             for(var k in data)
24             {
25                 str+="<option value=\'"+data[k][0]+"\'>"+data[k][1]+"</option>";
26             }
27             
28             $("#sel").html(str);
29             
30             }
31         });
32     
33 });
34 </script>
35 </html>
View Code

 

2.处理页面

 1 <?php
 2 
 3 include("../DBDA.class.php");
 4 $db = new DBDA();
 5 
 6 $sql = "select * from Nation";
 7 $attr = $db->Query($sql);
 8 
 9 echo json_encode($attr);
10 
11 
12 
13 ?>
View Code

 

3.运行结果

 

二、返回xml数据

XML:页面之间传递数据,跨平台传递

HTML:超文本标记语言,核心标签

1. 什么是XML?

      XML(eXtensible Markup Language)即可扩展标记语言,它与HTML一样,都是SGML(Standard Generalized Markup Language,标准通用标记语言)。Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用。

      XML与Access,Oracle和SQL Server等数据库不同,数据库提供了更强有力的数据存储和分析能力,例如:数据索引、排序、查找、相关一致性等,XML仅仅是展示数据。事实上XML与其他数据表现形式最大的不同是:他极其简单。这是一个看上去有点琐细的优点,但正是这点使XML与众不同。

      XML的简单使其易于在任何应用程序中读写数据,这使XML很快成为数据交换的唯一公共语言,虽然不同的应用软件也支持其它的数据交换格式,但不久之后他们都将支持XML,那就意味着程序可以更容易的与Windows、Mac OS, Linux以及其他平台下产生的信息结合,然后可以很容易加载XML数据到程序中并分析他,并以XML格式输出结果。

 

2. XML特点:

1.标签名可以自己定义
2.有且只有一个根
3.大小写敏感
4.标签必须完整

3. XNL书写形式:

 1 <xml version=\'1.0\'>
 2 <Nation>
 3     <one>
 4         <Code>n001</Code>
 5         <name>汉族</name>
 6     </one>
 7     <two>
 8         <code>n002</code>
 9         <name>苗族</name>
10     </two>
11 </Nation>

 

4. 例子:同上面Json的例子

    1.主页面  

 1 <head>
 2 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 3 <title>无标题文档</title>
 4 <script src="../jquery-1.11.2.min.js"></script>
 5 </head>
 6 
 7 <body>
 8 <select id="sel"></select>
 9 </body>
10 <script type="text/javascript">
11 $(document).ready(function(e) {
12     
13     $.ajax({
14         url:"chulixml.php",
15         dataType:"XML",
16         success:function(data){
17             
18             var ch = $(data).find("nation").children();
19             var str = "";
20             for(var i=0;i<ch.length;i++)
21             {
22                 var code = $(ch[i]).find("code").text();
23                 var name = $(ch[i]).find("name").text();
24                 
25                 str+="<option value=\'"+code+"\'>"+name+"</option>";
26             }
27             $("#sel").html(str);
28             
29             }
30         });
31 });
32 </script>
33 </html>
View Code

 

 2. 处理页面 

 1 <?php
 2 include("../DBDA.class.php");
 3 $db = new DBDA();
 4 
 5 $sql = "select * from nation";
 6 
 7 $attr = $db->Query($sql);
 8 
 9 echo "<?xml version=\'1.0\'?>";
10 
11 echo "<nation>";
12 
13 foreach($attr as $k=>$v)
14 {
15     echo "<shuju{$k}>";
16     
17     echo "<code>{$v[0]}</code>";
18     echo "<name>{$v[1]}</name>";
19     
20     echo "</shuju{$k}>";
21 }
22 
23 echo "</nation>";
View Code

 

 3.运行结果

 

 三、Ajax调用返回Json数据,封装类

 1 //Ajax调用返回JSON
 2     public function JsonQuery($sql,$type=1,$db="mydb")
 3     {
 4         //定义数据源
 5         $dsn = "mysql:dbname={$db};host={$this->host}";
 6         //造pdo对象
 7         $pdo = new PDO($dsn,"{$this->uid}","{$this->password}");
 8 
 9         
10         //准备执行SQL语句
11         $st = $pdo->prepare($sql);
12         
13         //执行预处理语句
14         if($st->execute())
15         {
16             if($type==1)
17             {
18                 $attr = $st->fetchAll(PDO::FETCH_ASSOC);
19                 return json_encode($attr);
20             }
21             else
22             {
23                 if($st)
24                 {
25                     return "OK";
26                 }
27                 else
28                 {
29                     return "NO";
30                 }
31             }
32             
33         }
34         else
35         {
36             echo "执行失败!";
37         }
38     }
39     
View Code

 

以上是关于Ajax调用返回json,xml数据类型(0517--pm)的主要内容,如果未能解决你的问题,请参考以下文章

ajax返回的两种数据类型xml和json用法

ajax 调用 webService

调用AJAX返回JSONXML数据类型

Struts2+Jquery实现ajax并返回json类型数据

Struts2+Jquery实现ajax并返回json类型数据

php中使用ajax进行前后端json数据交互