既然选择了远方,便只顾风雨兼程~~~

基于JQuery框架的AJAX(转帖)

上一篇 / 下一篇  2007-11-26 15:58:17

基于JQuery框架的AJAX

前几天发了个贴,分享了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="background:orange;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">POST提交</button>
<button id="test_get">GET提交</button>



JS:
1、引入jquery框架:
<scrīpt  type="text/javascrīpt" src="../js/jquery.js"></scrīpt>

2、构建AJAX,JQUERY的好处是不需要在XHTML中使用JS代码来触发事件了,可以直接封装在JS文件中:
<scrīpt type="text/javascrīpt">
//$.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+"<br />";
       str+="年龄:"+json.age+"<br />";
       str+="性别:"+json.sex+"<br />";
       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+"<br />工作:"+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);
                      });
           });
});
</scrīpt>


PHP代码:
<?php
$arr=$_POST;//若以$.get()方式发送数据,则要改成$_GET.或者干脆:$_REQUEST
$myjson=json_encode($arr);
echo $myjson;
?>


PS:发贴时代码功能不能用,郁闷~。。。将就着看吧。

TAG:

引用 删除 guofang   /   2008-12-11 19:59:34
好,感谢辉老大~~
我的PHP世界 引用 删除 115300111   /   2007-11-27 13:49:26
偶也是这么做的
引用 删除 杰伦皇D   /   2007-11-27 13:08:28
希望可以总结一下这些框架与PHP一些专用的框架如XAJAX,SAJAX各自的优势和特色,还要如果运用到实际工作当中,那个框架最有用了,我也是快毕业了心里好急呀,要得向辉老大多多的请教经验心得呀
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar