本文實例講述了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程序設計有所幫助。
新聞熱點
疑難解答
圖片精選