您的位置:首页 > Web前端 > JavaScript

调用AJAX返回JSON、XML数据类型

2016-05-22 21:06 411 查看
1.调用AJAX返回JSON数据

用下拉列表显示Nation表民族名称

主页面:

<!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>
</html>
<script type="text/javascript">
$(document).ready(function(e) {
$.ajax({
//因为不用传数据,所以data与type不用写
url:"ChuLi.php",
dataType:"JSON",           //dataType中T必须大写,否则会出错
success: function(data){
/*var js = {           //二维数组的json数据形式:
aa:{code:"n001",name:"汉族"},
bb:{code:"n002",name:"苗族"},
};*/
var str = "";
for(var k in data)
{
str+="<option value='"+data[k][0]+"'>"+data[k][1]+"</option>";
}
$("#sel").html(str);
}
});
});

</script>


处理页面:

<?php
include("../DB.class.php");
$db = new DB();
$sql = "select * from Nation";
$attr = $db->Query($sql);
echo json_encode($attr);  //将数组转换为json数据来输出




2.将调用AJAX返回JSON数据方法封装到数据库类里面

class DB
{
public $host="localhost";  //服务器地址     默认值为localhost
public $uid="root";        //数据库用户名  默认值为root
public $pwd="123";    //数据库密码    默认值为123

//AJAX调用返回JSON数据
public function JsonQuery($sql,$type=0,$db="mydb")
{
//1.造数据源
$dsn = "mysql:dbname=$db;host=$this->host";
//2.造对象
$pdo = new PDO($dsn,$this->uid,$this->pwd);
//3.预处理
$stm = $pdo->prepare($sql);
//4.执行预处理语句
if($stm->execute())
{
if($type==0)
{
$attr = $stm->fetchAll();
return json_encode($attr);
}
else
{
if($stm)
{
return "OK";
}
else
{
return "NO";
}
}
}
else
{
echo "执行失败!";
}
}
}


2.调用AJAX返回XML数据

XML(Extensible Markup Language)可扩展标记语言标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言

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

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

XML:页面之间传递数据,跨平台传递,核心是标签

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

XML 被设计为传输和存储数据,其焦点是数据的内容。

HTML 被设计用来显示数据,其焦点是数据的外观。

HTML 旨在显示信息,而 XML 旨在传输信息。

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

XML格式:

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


还是用下拉列表显示Nation表民族名称的例子:

主页面:

<!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>
</html>
<script type="text/javascript">
$(document).ready(function(e) {
$.ajax({

url:"chulixml.php",
dataType:"XML",    //返回XML文档
success: function(data){
//从XML文档中根据标签名找内容,相当于解析页面数据,例如:
//$(data).find("code").eq(0).text();//标签名为code的第一个元素的内容
//根据最外层的根nation取到所有内容,再取里面的子元素放入变量ch中
var ch = $(data).find("nation").children();
var str = "";
for(var i=0;i<ch.length;i++)
{
//从ch中循环出每一条数据的code与name
var code = $(ch[i]).find("code").text();
var name = $(ch[i]).find("name").text();
str+="<option value='"+code+"'>"+name+"</option>";
}

$("#sel").html(str);
}

});
});

</script>


处理页面:

<?php
include("../DB.class.php");
$db = new DB();
$sql = "select * from Nation";
$attr = $db->Query($sql);
//返回XML数据就要写一个XML文档
/*echo "<?xml version='1.0'?>"; */   //XML文档的头可以不写
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>";


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: