AJAX里,使用XML返回数据类型,实现简单下拉列表

XML:可扩展标记语言
HTML:超文本标记语言

标签:<标签名></标签名>

特点:
1.必须要有一个根
2.标签名自定义
3.对大小写敏感
4.有开始就要有结束
5.同一级别下只能有一个标签名
<nation>
    <n1>
    <code>n001</code>
    <name>汉族</name>
    </n1>
    <n2>
    <code>n002</code>
    <name>回族</name>
    </n2>
</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>
<script type="text/javascript">
$.ajax({
        url:"xmlchuli.php", 
        dataType:"XML", 
        success: function(data){
                //alert($(data).find("code").eq(1).text());
                //alert($(data).find("nation").attr("bs"));//此方法还可以取标签名里的属性来求出你想显示的值,fibd找到nation标签名,取他里面定义的bs属性
                
                var allcode = $(data).find("code");  //find直接找处理页面里所有code标签名 交给allcode
                var allname = $(data).find("name");  //code 和 name在处理页面是成对出现的,所以取出code就能取出name
                
                var str ="";
                
                for(var i=0;i<allcode.length;i++)//循环allcode标签取出里面所有的值
                {
                    var code = allcode.eq(i).text();//交给code
                    var name = allname.eq(i).text();//交给name
                    
                    str = str +"<option value='"+code+"'>"+name+"</option>";//根据code,name求出来的值,显示name类里的值
                }
                
                $("#sel").html(str);//$("")找到下拉,将求出来的Name列值放到下拉列表中
            }
    });
</script>

处理界面:

<?php
include("DBDA.class.php");
$db = new DBDA(); 

$sql = "select * from nation";

$attr = $db->Query($sql);

echo "<nation>";  //将二维数组转换XML格式,先输出<nation></nation>标签,作为XML的根
    
foreach($attr as $k=>$v) //$k等于从零开始
{
    echo "<n{$k}><code>{$v[0]}</code><name>{$v[1]}</name></n{$k}>";
}
    
echo "</nation>";
原文地址:https://www.cnblogs.com/u1020641/p/6081001.html