`

基于JQuery框架的AJAX

 
阅读更多
正好项目中准备使用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框架:
<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+"<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);
                  });
          });
});
</script>

PHP代码:
<?php
$arr=$_POST; //若以$.get()方式发送数据,则要改成$_GET.或者干脆:$_REQUEST
$myjson=json_encode($arr);
echo $myjson;
?>
分享到:
评论
2 楼 juliashine 2008-01-16  
大量的转贴也不注明?
1 楼 hax 2008-01-16  
引用
有人说Prototype像JAVA,正统;而JQuery像Ruby,灵活,更趋于OOP。


这个有点搞笑。prototype是ror的副产品,jquery怎么会比prototype更像ruby呢?呵呵。

相关推荐

Global site tag (gtag.js) - Google Analytics