zoukankan      html  css  js  c++  java
  • ajax技术xml类型的实现

    1、在php代码中必须加 header('Content-type:text/xml'); 设置相应头,告诉他是xml类型的相应

    2、ajax中如果是post请求,在send之前要设置请求头 xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

    一些需要知道的

    var xml=xhr.responseXML;      得到ajax返回的xmldom对象

    xml.getElementsByTagName(‘jia’)[0] :是表示获取jia这个元素

    xml.getElementsByTagName(‘jia’)[0].childNodes:表示获取jia元素下的所有子节点

    xml.getElementsByTagName(‘jia’)[0].childNodes[0] :表示获取jia元素下的唯一文本节点

    xml.getElementsByTagName(‘jia’)[0].childNodes[0].nodeValue:文本节点的值


    一个简单的数据库输出案例

    html

    <script>
        window.onload=function(){
             document.getElementById('btn').onclick=function(){
                var xhr=new XMLHttpRequest();
                var data='che=1';
                xhr.open('post','demo01.php');
                xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
                xhr.send(data);
                xhr.onreadystatechange=function(){
                    if(xhr.readyState==4 && xhr.status==200){
                        
                        var xml=xhr.responseXML;
                        var user=xml.getElementsByTagName('user');
                        for(var i=0;i<user.length;i++){
                            //创建行元素
                            var tr=document.createElement('tr');
                            //创建序号Td元素
                            var tdId=document.createElement('td');
                            tdId.innerHTML=i+1;
                            //创建名称td元素
                            var tdName=document.createElement('td');
                            tdName.innerHTML=user[i].childNodes[0].childNodes[0].nodeValue;
                            //创建密码td元素
                            var tdPassword=document.createElement('td');
                            tdPassword.innerHTML=user[i].childNodes[1].childNodes[0].nodeValue;
                            //创建图片名td元素,并将图片名追加到图片名td元素中
                            var tdPhoto=document.createElement('td');
                            tdPhoto.innerHTML=user[i].childNodes[2].childNodes[0].nodeValue;
                            //将4个td元素追加到tr元素
                            tr.appendChild(tdId);
                            tr.appendChild(tdName);
                            tr.appendChild(tdPassword);
                            tr.appendChild(tdPhoto);
                            document.getElementsByTagName('TBODY')[0].appendChild(tr);  
                        }
                        
                    }
                }
             }
        }
    </script>
    
    
    <table width='300px' style='border:1px solid #336699'>
    <tr>
    <td>ID</td><td>用户名</td>
    <td>密码</td><td>图片名</td>
    </tr>
    </table>
    <button id='btn'>计算</button><br/>

    php

    mysql_connect('127.0.0.1','root','root');
    $sql='select * from user';
    mysql_select_db('demo');
    mysql_query('set names utf-8');
    $result=mysql_query($sql);
    $str='<root>';
    while($row=mysql_fetch_assoc($result)){
        $str.='<user>';
        $str.='<id>'.$row['id'].'</id>';
        $str.='<username>'.$row['username'].'</username>';
        $str.='<password>'.$row['password'].'</password>';
        $str.='<photo>'.$row['photo'].'</photo>';
        $str.='</user>';
    }
    $str.='</root>';
    header('Content-type:text/xml');
    echo $str;
  • 相关阅读:
    odoo12安装Wkhtmltopdf打印出pdf已损坏
    odoo10实现单点登陆绕过登陆集成页面
    odoo添加顶部按钮实现自定义方法
    odoo t标签用法
    C#编写dll进行sql server数据库扩展储存过程
    小程序生成二维码(使用binarywang封装的微信工具包)
    -bash: ./start.sh: /bin/sh^M: bad interpreter: No such file or directory 错误解决方案
    过滤器跟拦截器的区别
    mybatis-DATE_FORMAT() 时间格式化,所对应的时间格式
    解决 MyBatis-Plus 更新对象无法设空值
  • 原文地址:https://www.cnblogs.com/hhfhmf/p/4800993.html
Copyright © 2011-2022 走看看