jquery與ajax的整合

jquery與ajax的整合

jquery是一個經典的js框架,ajax又是以js爲核心的多語言異步刷新技術,那麼兩者結合,各自發揮所長,必定威力巨大,我們一般會選擇用ajax實現前臺與後臺的數據傳遞,而用jquery技術實現對dom的各種操作。jquery爲簡化ajax引擎的創建和業務邏輯,提供了三種可選的方式,post()是最爲常用的方式,load()需要用一個jquery對象調用,且返回結果給這個對象,get()則要保證每次提交的數據不同。下面通過一個具體的登錄案例代碼,展示如何將兩者完美結合。

l        前臺頁面代碼:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

 <head>

   <title>ajax_jquery整合</title>

   <meta http-equiv="content-type" content="text/html;charset=UTF-8">

       <scriptlanguage="JavaScript" src="js/jquery-1.3.1.js"></script>

       <styletype="text/css">

                    div,span{

                         width: 140px;

                         height: 140px;

                         margin: 20px;

                         background: #9999CC;

                         border: #000 1px solid;

                            float:left;

                         font-size: 17px;

                         font-family:Roman;

                     }

                    

                     div.mini{

                         width: 30px;

                         height: 30px;

                         background:#CC66FF;

                         border: #000 1px solid;

                         font-size: 12px;

                         font-family:Roman;

                     }

                    

                     div.visible{

                            display:none;

                     }

        </style>

       </head>

       <body>

              <formaction="" name="form1" id="form1">

                     <inputtype="text" name="username" id="username"value="zhang"><br>

                     <inputtype="text" name="psw" id="psw"value="99999"><br>

               <input type="button"id="b1" value="登陸">

              </form>

              <divid="one"></div>

       </body>

  <script language="JavaScript">

         $(document).ready(function(){

              //load的get方式提交,無數據默認用get方式,有數據用post方式,會返回data

       /*$('#b1').click(function(){

                     //1.第一個參數url

                     //2.第二個參數data ,格式應當是 "{'username':'順平'}";

                     //3.第三個參數是函數(回調函數)

                     //function內的data表示從服務器回送的數據(string)

                     //textStatus表示狀態有四個succuss, error, notmodify,timeout

                     //xmlHttpRequest表示XMLHttpRequest對象

                     $('#one').load("loadController.php?date"+Math.random()+"&username="+$('#username').val(),null,function(data,textStatus,xmlHttpRequest){

                            //alert("服務器返回"+data);

                            $(this).text(data);

                     });

              })*/

              //客戶端發送json ,以post方式;服務器端回送的text

              /*$('#b1').click(function(){

                     varsend_data={"username":$("#username").val(),"psw":$("#psw").val()};  //json數據格式

                     $('#one').load("loadController.php",send_data,function(data,textStatus,xmlHttpRequest){

                            //服務器返回文本data,處理如下

                            //alert("服務器返回"+data);

                            //alert(data);

                           

                            //如服務器端返回的數據格式是json格式,則應當處理如下

                            //varobj=eval("("+data+")");

                            //window.alert(obj.res+""+obj.info);

 

                            //如果服務器返回的數據格式是xml格式的

                            varresult=xmlHttpRequest.responseXML;

                            varres=result.getElementsByTagName('res');

                            window.alert(res[0].childNodes[0].nodeValue);

                     });

              })*/

             

              //使用$.post方法如下[$.get方式雷同]

              $('#b1').click(function(){

                     varsend_data={"username":$("#username").val(),"psw":$("#psw").val()};

                     varxmlHttpRequest=$.post("loadController.php",send_data,function(data,ts){

                            //若服務器返回的是text

                            //alert(data);

 

                            //若服務器返回的是json格式

                            //varobjs=eval("("+data+")");

                            //var$objs=$(objs);//jquery對象集合,如果不轉,objs是dom對象集合

                            //$objs.each(function(){

                            //     alert(this.res+this.info);

                            //})

                           

                            //若返回的是xml格式,則轉換爲dom

                            varxmlObjs=xmlHttpRequest.responseXML;

                            varres=xmlObjs.getElementsByTagName('res');

                            alert(res[0].childNodes[0].nodeValue);

                     })

              })

        });

  </script>

</html>

l        後臺邏輯代碼[loadController.php]:

<?php

       //返回html格式或json格式

       //header("content-type:text/html;charset=utf-8");

       //返回xml格式

       header("content-type:text/xml;charset=utf-8");

       $username=$_POST['username'];

       //file_put_contents("d:/mylog.log","ok".$username."\r\n",FILE_APPEND);

       if($username=="xiaoxiao"){

              //echo"不可以用";

              //echo"[{'res':'不可以用','info':'哈哈'},{'res':'不uu','info':'哈哈uu'}]";

              echo "<result><res>不可以用</res><info>哈哈</info></result>";

       }else{

              //echo "可以用";

              //echo "[{'res':'可以用','info':'嘻嘻'},{'res':'可以iii用','info':'xixn'}]";

              echo"<result><res>可以用</res><info>嘻嘻</info></result>";

       }

?>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章