jquery與 ajax 簡單例子

來源:互聯網
上載者:User

jquery與 ajax 簡單例子

基於JQuery架構的AJAX
PS:本人這篇始發於PHPCHINA,發現被很多人轉了,但卻未註明出處,想了一下,還是自己轉到這裡來。
前幾天發了個貼,分享了prototype架構關於AJAX方面的學習過程。然後有人說jquery架構更方便。

正好項目中準備使用thickbox,於是乾脆拋棄prototype.js,看起jquery.js了。JQuery確實不錯,體積比Prototype小了許多,而且使用起來更方便更靈活。有人說Prototype像JAVA,正統;而JQuery像Ruby,靈活,更趨於OOP。

小試了下AJAX,感覺比prototype簡潔多了,在JQuery中,AJAX有三種實現方式:$.ajax(),$.post,$.get()。

XHTML(主要):
代碼: 複製內容到剪貼簿
<div id="result" style="backgroundrange;border:1px solid red;width:300px;height:400px;"></div>

<form id="formtest" action="" method="post">

<p><span>輸入姓名:</span><input type="text" name="username" id="input1" /></p>

<p><span>輸入年齡:</span><input type="text" name="age" id="input2" /></p>

<p><span>輸入性別:</span><input type="text" name="sex" id="input3" /></p>

<p><span>輸入工作:</span><input type="text" name="job" id="input4" /></p>

</form>

<button id="send_ajax">提交</button>

<button id="test_post">OST提交</button>

<button id="test_get">GET提交</button>
JS:
1、引入jquery架構:
代碼: 複製內容到剪貼簿
<script  type="text/javascript" src="../js/jquery.js"></script>
2、構建AJAX,JQUERY的好處是不需要在XHTML中使用JS代碼來觸發事件了,可以直接封裝在JS檔案中:
代碼: 複製內容到剪貼簿
<script type="text/javascript">

//$.ajax()方式

$(document).ready(function (){

   $('#send_ajax').click(function (){ //直接把onclick事件寫在了JS中,而不需要混在XHTML中了

          var params=$('input').serialize(); //序列化表單的值,與prototype中的form.serialize()相同

         $.ajax({

               url :'ajax_test.php',  //幕後處理程式

               type:'post',    //資料發送方式

             dataType:'json',  //接受資料格式

               data:params,  //要傳遞的資料

               success:update_page  //回傳函數(這裡是函數名)

               });

        });

});

function update_page (json) { //回傳函數實體,參數為XMLhttpRequest.responseText

       var str="姓名:"+json.username+"";

       str+="年齡:"+json.age+"";

       str+="性別:"+json.sex+"";

       str+="工作:"+json.job;

       $("#result").html(str);

}

//$.post()方式:

$(function (){//$(document).ready(function (){ 的簡寫

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

                $.post('ajax_test.php',

               {username('#input1').val(),age('#input2').val(),sex('#input3').val(),job('#input4').val()},

                function (data){ //回傳函數

                var myjson='';

               eval('myjson='+data+';');

               $('#result').html("姓名:"+myjson.username+"

工作:"+myjson['job']);

               });

       });

});

$.get()方式:

$(function (){

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

                     $.get('ajax_test.php',

                     {username("#input1").val(),age("#input2").val(),sex("#input3").val(),job("#input4").val()},

                     function  (data) {

                           var myjson='';

                           eval("myjson="+data+";");

                           $("#result").html(myjson.job);

                      });

           });

});

</script>
PHP代碼:
代碼: 複製內容到剪貼簿
<?php

$arr=$_POST; //若以$.get()方式發送資料,則要改成$_GET.或者乾脆_REQUEST

$myjson=json_encode($arr);

echo $myjson;

?>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.