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 相关文章推荐
基于文本的留言簿
Oct 09 PHP
php中怎么搜索相关联数组键值及获取之
Oct 17 PHP
PHP中的Memcache详解
Apr 05 PHP
WordPress中制作导航菜单的PHP核心方法讲解
Dec 11 PHP
Thinkphp3.2.3分页使用实例解析
Jul 28 PHP
PHP基于反射机制实现插件的可插拔设计详解
Nov 10 PHP
php使用include 和require引入文件的区别
Feb 16 PHP
ZendFramework2连接数据库操作实例
Apr 18 PHP
Yii框架批量插入数据扩展类的简单实现方法
May 23 PHP
CakePHP框架Model关联对象用法分析
Aug 04 PHP
PHP7引入的&quot;??&quot;和&quot;?:&quot;的区别讲解
Apr 08 PHP
php+ajax实现商品对比功能示例
Apr 13 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
让PHP支持页面回退的两种方法[转]
2007/02/14 PHP
整理的一些实用WordPress后台MySQL操作命令
2013/01/07 PHP
php实现MySQL数据库备份与还原类实例
2014/12/09 PHP
php+mysql结合Ajax实现点赞功能完整实例
2015/01/30 PHP
PHP中实现接收多个name相同但Value不相同表单数据实例
2015/02/03 PHP
smarty简单应用实例
2015/11/03 PHP
PHP实现验证码校验功能
2017/11/16 PHP
jQuery动态添加的元素绑定事件处理函数代码
2011/08/02 Javascript
js实现快速分享功能(你的文章分享工具)
2013/06/25 Javascript
eclipse导入jquery包后报错的解决方法
2014/02/17 Javascript
将字符串中由空格隔开的每个单词首字母大写
2014/04/06 Javascript
js 实现的可折叠留言板(附源码下载)
2014/07/01 Javascript
jQuery实现瀑布流布局详解(PC和移动端)
2020/09/01 Javascript
jQuery实现的鼠标滑过弹出放大图片特效
2016/01/08 Javascript
jQuery获取table行数并输出单元格内容的实现方法
2016/06/30 Javascript
Vue.js 表单校验插件
2016/08/14 Javascript
JavaScript字符串_动力节点Java学院整理
2017/06/27 Javascript
js实现省市级联效果分享
2017/08/10 Javascript
基于React Native 0.52实现轮播图效果
2020/08/25 Javascript
vue resource发送请求的几种方式
2019/09/30 Javascript
element-plus一个vue3.xUI框架(element-ui的3.x 版初体验)
2020/12/02 Vue.js
[01:01:36]Optic vs paiN 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python2.6版本中实现字典推导 PEP 274(Dict Comprehensions)
2015/04/28 Python
Python实现简单生成验证码功能【基于random模块】
2018/02/10 Python
实例分析python3实现并发访问水平切分表
2018/09/29 Python
对pycharm 修改程序运行所需内存详解
2018/12/03 Python
python函数的万能参数传参详解
2019/07/26 Python
python3.7通过thrift操作hbase的示例代码
2020/01/14 Python
基于Python3.7.1无法导入Numpy的解决方式
2020/03/09 Python
利用HTML5的新特点实现图片文件异步上传
2014/05/29 HTML / CSS
香港网上花店:FlowerAdvisor香港
2019/05/30 全球购物
初中三好学生事迹材料
2014/01/13 职场文书
办护照工作证明范本
2014/01/14 职场文书
宝宝周岁宴答谢词
2014/01/26 职场文书
爱心捐款倡议书
2014/04/14 职场文书
利用Sharding-Jdbc进行分库分表的操作代码
2022/01/22 Java/Android