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

时间:2022-06-11 23:14:26

一、返回Json型数据:

1.主页面

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script src="../jquery-1.11.2.min.js"></script>
</head> <body>
<select id="sel">
</select>
</body>
<script type="text/javascript">
$(document).ready(function(e) { $.ajax({
url:"ChuLi.php",
dataType:"JSON",
success: function(data){ //alert(data);
var str = "";
for(var k in data)
{
str+="<option value='"+data[k][0]+"'>"+data[k][1]+"</option>";
} $("#sel").html(str); }
}); });
</script>
</html>

2.处理页面

 <?php

 include("../DBDA.class.php");
$db = new DBDA(); $sql = "select * from Nation";
$attr = $db->Query($sql); echo json_encode($attr); ?>

3.运行结果

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

二、返回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书写形式:

 <xml version='1.0'>
<Nation>
<one>
<Code>n001</Code>
<name>汉族</name>
</one>
<two>
<code>n002</code>
<name>苗族</name>
</two>
</Nation>

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

1.主页面  

 <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script src="../jquery-1.11.2.min.js"></script>
</head> <body>
<select id="sel"></select>
</body>
<script type="text/javascript">
$(document).ready(function(e) { $.ajax({
url:"chulixml.php",
dataType:"XML",
success:function(data){ var ch = $(data).find("nation").children();
var str = "";
for(var i=0;i<ch.length;i++)
{
var code = $(ch[i]).find("code").text();
var name = $(ch[i]).find("name").text(); str+="<option value='"+code+"'>"+name+"</option>";
}
$("#sel").html(str); }
});
});
</script>
</html>

 2. 处理页面

 <?php
include("../DBDA.class.php");
$db = new DBDA(); $sql = "select * from nation"; $attr = $db->Query($sql); echo "<?xml version='1.0'?>"; echo "<nation>"; foreach($attr as $k=>$v)
{
echo "<shuju{$k}>"; echo "<code>{$v[0]}</code>";
echo "<name>{$v[1]}</name>"; echo "</shuju{$k}>";
} echo "</nation>";

 3.运行结果

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

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

 //Ajax调用返回JSON
public function JsonQuery($sql,$type=1,$db="mydb")
{
//定义数据源
$dsn = "mysql:dbname={$db};host={$this->host}";
//造pdo对象
$pdo = new PDO($dsn,"{$this->uid}","{$this->password}"); //准备执行SQL语句
$st = $pdo->prepare($sql); //执行预处理语句
if($st->execute())
{
if($type==1)
{
$attr = $st->fetchAll(PDO::FETCH_ASSOC);
return json_encode($attr);
}
else
{
if($st)
{
return "OK";
}
else
{
return "NO";
}
} }
else
{
echo "执行失败!";
}
}