php+Ajax处理xml与json格式数据的方法示例


Posted in PHP onMarch 04, 2019

本文实例讲述了php+Ajax处理xml与json格式数据的方法。分享给大家供大家参考,具体如下:

一、ajax如何处理xml数据格式

register.php

只需修改上一篇《php+Ajax无刷新验证用户名操作》中chuli函数部分

functionchuli(){
 // window.alert("cuhli函数被调用"+myXmlHttpRequest.readyState);
  //我要取出从register.php返回的数据
  if(myXmlHttpRequest.readyState==4){
    //------------看看如何取出xml数据--------
    //获取mes节点
    var mes=myXmlHttpRequest.responseXML.getElementsByTagName("mes");
    //取出mes节点值
    var mes_value=mes[0].childNodes[0].nodeValue;
    $("myres").value=mes_value;
  }
}

Process.php 代码

<?php
    //第一讲话告诉浏览器返回的数据是xml格式
    header("Content-Type:text/xml;charset=utf-8");
    //告诉浏览器不要缓存数据
    header("Cache-Control:no-cache");
    //接收数据(这里要和请求方式对于 _POST 还是 _GET)
    $username=$_POST['username'];
    //这里我们看看如何处理格式是xml
    $info="";
    if($username=="李四"){
       $info.="<res><mes>用户名不可以用,对不起</mes></res>";//注意,这里数据是返回给请求的页面.
    }else{
       $info.="<res><mes>用户名可以用,恭喜</mes></res>";
    }
    echo $info;
?>

二、ajax如何处理json数据格式

json格式介绍

① json的格式如下 :

"{属性名:属性值,属性名:属性值,.... }"

因为json数据是原生态数据,因此这种数据格式很稳定,而且描述能力强,我们建议大家使用json格式

② json数据格式的扩展

如果服务器返回的json 是多组数据,则格式应当如下:

$info="[{"属性名":"属性值",...},{"属性名":"属性值",...},....]";

在xmlhttprequest对象接收到json数据后,应当这样处理

//转成对象数组
varreses=eval("("+xmlHttpRequest.responseText+")");
//通过reses可以取得你希望的任何一个值
reses[?].属性名

③ 更加复杂的json数据格式

<script language="JavaScript">
   var people ={
      "programmers":
       [
        {"firstName":"Brett", "email": "brett@newInstance.com" },
        {"firstName":"Jason", "email": "jason@servlets.com" }
       ],
      "writer":
           [
              {"writer":"宋江","age":"50"},
              {"writer":"吴用","age":"30"}
           ],
           "sex":"男"
};
window.alert(people.programmers[0].firstName);
window.alert(people.programmers[1].email);
window.alert(people.writer[1].writer);
window.alert(people.sex);
</script>

register.php 部分中chuli函数

function chuli(){
  if(myXmlHttpRequest.readyState==4){
    //------------看看如何取出json数据--------
    var mes= myXmlHttpRequest.responseText;
    //使用evla函数将mes转换成相应的对象
    var mes_obj=eval("("+mes+")");
    $("myres").value=mes_obj.res;
  }
}

process.php 代码

<?php
  header("Content-Type: text/html;charset=utf-8");
  //告诉浏览器不要缓存数据
  header("Cache-Control: no-cache");
  $info="";
  if($username=="1"){
    $info='{"res":"该用户不可用"}';
  }
  else{
    //$info是一个json数据格式的字串
    $info='{"res":"恭喜,用户名可用"}';
  }
echo $info;
?>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
多重?l件?合查?(一)
Oct 09 PHP
PHP系列学习之日期函数使用介绍
Aug 18 PHP
基于MySQL分区性能的详细介绍
May 02 PHP
php unset全局变量运用问题的深入解析
Jun 17 PHP
php通过隐藏表单控件获取到前两个页面的url
Sep 09 PHP
Linux下安装oracle客户端并配置php5.3
Oct 12 PHP
理解PHP中的Session及对Session有效期的控制
Jan 08 PHP
深入理解PHP中的count函数
May 31 PHP
PHP基于redis计数器类定义与用法示例
Feb 08 PHP
php如何计算两坐标点之间的距离
Dec 29 PHP
Laravel6.0.4中将添加计划任务事件的方法步骤
Oct 15 PHP
PHP字符串和十六进制如何实现互相转换
Jul 16 PHP
php+Ajax无刷新验证用户名操作实例详解
Mar 04 #PHP
实例介绍PHP删除数组中的重复元素
Mar 03 #PHP
PHP+Ajax简单get验证操作示例
Mar 02 #PHP
PHP结合jquery ajax实现上传多张图片,并限制图片大小操作示例
Mar 01 #PHP
PHP实现获取毫秒时间戳的方法【使用microtime()函数】
Mar 01 #PHP
PHP中“=&gt;
Mar 01 #PHP
PHP htmlspecialchars_decode()函数用法讲解
Mar 01 #PHP
You might like
在html文件中也可以执行php语句的方法
2015/04/09 PHP
ExtJS TabPanel beforeremove beforeclose使用说明
2010/03/31 Javascript
jquery中one()方法的用法实例
2015/01/16 Javascript
JS实现双击编辑可修改状态的方法
2015/08/14 Javascript
JS组件Bootstrap实现弹出框和提示框效果代码
2015/12/08 Javascript
jQuery检测滚动条是否到达底部
2015/12/15 Javascript
jQuery UI实现动画效果代码分享
2018/08/19 jQuery
vuejs点击class变化的实例
2018/09/05 Javascript
vue单页面实现当前页面刷新或跳转时提示保存
2018/11/02 Javascript
使用mixins实现elementUI表单全局验证的解决方法
2019/04/02 Javascript
javascript实现移动端轮播图
2020/12/09 Javascript
Python中常用信号signal类型实例
2018/01/25 Python
python高效过滤出文件夹下指定文件名结尾的文件实例
2018/10/21 Python
详解Django-auth-ldap 配置方法
2018/12/10 Python
Python 二叉树的层序建立与三种遍历实现详解
2019/07/29 Python
python多线程与多进程及其区别详解
2019/08/08 Python
keras模型保存为tensorflow的二进制模型方式
2020/05/25 Python
DataFrame.groupby()所见的各种用法详解
2020/06/14 Python
python的json包位置及用法总结
2020/06/21 Python
Python爬虫之Selenium实现键盘事件
2020/12/04 Python
Oroton中国官网:澳洲知名奢侈配饰品牌
2017/03/26 全球购物
铭万公司.net面试题笔试题
2014/07/20 面试题
分别介绍一下Session Bean和Entity Bean
2015/03/13 面试题
18岁生日感言
2014/01/12 职场文书
大学生职业生涯规划书
2014/03/14 职场文书
矿泉水广告词
2014/03/20 职场文书
四群教育工作实施方案
2014/03/26 职场文书
影子教师研修方案
2014/06/14 职场文书
团队拓展活动方案
2014/08/28 职场文书
给老婆道歉的话
2015/01/20 职场文书
仓库保管员岗位职责
2015/02/09 职场文书
六年级数学教学反思
2016/02/16 职场文书
CSS3实现的水平标题菜单
2021/04/14 HTML / CSS
MySQL性能压力基准测试工具sysbench的使用简介
2021/04/21 MySQL
SpringBoot集成Druid连接池连接MySQL8.0.11
2021/07/02 Java/Android
Win11远程连接不上怎么办?Win11远程桌面用不了的解决方法
2022/08/05 数码科技