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

这篇文章主要介绍了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. }
  12. }

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. }
  9. }

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. ?>