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>
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 ?>
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>
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>";
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