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

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

 

posted @ 2016-05-22 21:06  魅影星魂  阅读(289)  评论(0编辑  收藏  举报