当前位置:首页 > PHP教程 > php应用 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2021-11-11 16:44:17 浏览: 评论:0 

这篇文章主要介绍了php+Ajax处理xml与json格式数据的方法,结合实例形式分析了ajax处理xml格式数据及json格式数据相关操作技巧与注意事项,需要的朋友可以参考下。

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

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

register.php

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

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

Process.php 代码

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

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

json格式介绍

① json的格式如下 :

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

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

② json数据格式的扩展

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

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

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

转成对象数组

varreses=eval("("+xmlHttpRequest.responseText+")");

通过reses可以取得你希望的任何一个值

reses[?].属性名

③ 更加复杂的json数据格式

  1. <script language="JavaScript"
  2.    var people ={ 
  3.       "programmers"
  4.        [ 
  5.         {"firstName":"Brett""email""brett@newInstance.com" }, 
  6.         {"firstName":"Jason""email""jason@servlets.com" } 
  7.        ], 
  8.       "writer"
  9.            [ 
  10.               {"writer":"宋江","age":"50"}, 
  11.               {"writer":"吴用","age":"30"
  12.            ], 
  13.            "sex":"男" 
  14. }; 
  15. window.alert(people.programmers[0].firstName); 
  16. window.alert(people.programmers[1].email); 
  17. window.alert(people.writer[1].writer); 
  18. window.alert(people.sex); 
  19. </script> 

register.php 部分中chuli函数

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

process.php 代码

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

Tags: php+Ajax xml json

分享到: