经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » AJAX » 查看文章
php+Ajax处理xml与json格式数据的方法示例
来源:jb51  时间:2019/3/4 9:52:12  对本文有异议

本文实例讲述了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. }
  13.  

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

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

json格式介绍

① json的格式如下 :

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

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

② json数据格式的扩展

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

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

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

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

③ 更加复杂的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>
  20.  

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

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

更多关于PHP相关内容感兴趣的读者可查看jb51专题:《PHP+ajax技巧与应用小结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

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

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号