php學習筆記(三十)ajax請求和接收參數的實現方式(包括json資料格式的簡單處理)____js

來源:互聯網
上載者:User
<?php/** * 一、Ajax的介紹和優點 * XMLHttpRequest *  * 二、建立ajax建立對象(需要多瀏覽器支援) * 建立過程複雜,但是代碼相對固定 * 要相容各個瀏覽器 * 1.ie系列 * 2.非ie系列的瀏覽器 *  * 三、ajax引擎對象中的方法(使用ajax請求伺服器) * abort停止當前請求 * getAllResponseHeaders返回完整的headers * getResponseHeader返回單個的header標籤 * open("method","url",true) * send("content")發送請求 *  * 四、通過ajax擷取伺服器發送的資料(通過ajxa的屬性實現) * ajax.onreadystatechange * 0Uninitialized初始化狀態。XMLHttpRequest 對象已建立或已被 abort() 方法重設。 * 1Open        open() 方法已調用,但是 send() 方法未調用。請求還沒有被發送。 * 2Send        Send() 方法已調用,HTTP 要求已發送到 Web 服務器。未接收到響應。 * 3Receiving        所有回應標頭部都已經接收到。響應體開始接收但未完成。 * 4Loaded        HTTP 響應已經完全接收。 *  */?><script>function createXMLHttpRequest(){    var request = false;    //一般先判斷非IE瀏覽器    //window對象中有XMLHttpRequest存在就是非IE,包括(IE7,IE8)    if(window.XMLHttpRequest){        request=new XMLHttpRequest();//非IE以及IE7,IE8瀏覽器        if(request.overrideMimeType){            request.overrideMimeType("text/xml");//重設mime類型        }    //window對象中有ActiveXObject屬性存在就是IE瀏覽器的低版本    }else if(window.ActiveXObject){        var versions=['Microsoft.XMLHTTP', 'MSXML.XMLHTTP', 'Msxml2.XMLHTTP.7.0','Msxml2.XMLHTTP.6.0','Msxml2.XMLHTTP.5.0', 'Msxml2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP'];//各種IE瀏覽器建立Ajax對象時傳遞的參數        for(var i=0; i<versions.length; i++){            try{                request=new ActiveXObject(versions[i]);//各個IE瀏覽器版本的參數不同                if(request){                    return request;                }            }catch(e){                request=false;            }        }    }    return request;}//注意:必須把建立ajax對象的代碼放在show 函數裡,確保每次點擊的時候都建立一個新的ajax對象。var ajax = null;function show(){var helloObj = document.getElementById("hello");ajax = createXMLHttpRequest();//ajax監聽請求狀態改變事件ajax.onreadystatechange = function(){if(ajax.readyState==4){if(ajax.status==200){//1.訪問php檔案//擷取伺服器輸出的文本var data = ajax.responseText;alert(data+"aaaaaa"+ajax.status);helloObj.innerHTML = data;//json轉成對象eval("var obj="+data);alert(obj.one);alert(obj.two);alert(obj.three);//2.訪問xml檔案(返回的是文檔document對象)var doc = ajax.responseXML;var users = doc.getElemnetsByTagName("user");}else{alert("頁面請求失敗"+ajax.status);}}}//open三個參數:方法,位置,非同步傳輸//使用get方法//ajax.open("get","serverget.php?username=zhangsan&email=devilzy@163.com×tamp="+Math.random(),true);//傳遞參數//ajax.send(null);//使用post需要設定頭資訊ajax.open("post","serverpost.php",true);ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");ajax.send("username=lisi&email=lisi@163.com×tamp="+Math.random());}</script><input type="button" onclick="show()" value="request"><div  id="hello" style="width: 500px;height: 100px;"></div><form action="serverpost.php" method="post"></form>


<?php$str = "{$_GET["username"]}---{$_GET["email"]}---\n";$file = fopen("saveget.txt", "a");fwrite($file, $str);$file.close();?>

<?php//用來解決中文亂碼問題//header("Content-Type:text/html;charset=utf-8");$str = "{$_POST["username"]}---{$_POST["email"]}---\n";//$file = fopen("savepost.txt", "a");//fwrite($file, $str);//$file.close();//多個字串會當成一個字串來處理//echo $str."我的啊";//echo $str."******";//所以可以寫入一個數組中$arr = array("one"=>1,"two"=>2,"three"=>3);//轉換成json$json = json_encode($arr);echo $json;?>


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.