zoukankan      html  css  js  c++  java
  • 调用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>";

  • 相关阅读:
    Java微信分享接口开发
    lintcode 刷题 by python 部分链表题总结(2)
    基于CART的回归和分类任务
    机器学习: K-means 聚类
    python 中的堆 (heapq 模块)应用:Merge K Sorted Lists
    名人、皇家谱系
    python实现数组和链表的归并排序
    Python 正则 —— 捕获与分组
    ArcGIS中的数据连接问题——数据类型不统一
    Spring boot 搭建
  • 原文地址:https://www.cnblogs.com/xinghun/p/5517280.html
Copyright © 2011-2022 走看看