基于JQuery框架的AJAX

基于JQuery框架的AJAX

正好项目中准备使用thickt3,于是干脆抛弃prototype.js,看起jquery.js了。JQuery确实不错,体积比Prototype小了许多,而且使用起来更方便更灵活。有人说Prototype像JAVA,正统;而JQuery像Ruby,灵活,更趋于OOP。

小试了下AJAX,感觉比prototype简洁多了,在JQuery中,AJAX有三种实现方式:$.ajax(),$.post,$.get()。
XHTML(主要):
代码: 复制内容到剪贴板
  1. <div?id="result"?style="backgroundrange;border:1px?solid?red;width:300px;height:400px;"><!---->div>
  2. <form?id="formtest"?action=""?method="post">
  3. <p><span>输入姓名:<!---->span><input?type="text"?name="username"?id="input1"?/><!---->p>
  4. <p><span>输入年龄:<!---->span><input?type="text"?name="age"?id="input2"?/><!---->p>
  5. <p><span>输入性别:<!---->span><input?type="text"?name="sex"?id="input3"?/><!---->p>
  6. <p><span>输入工作:<!---->span><input?type="text"?name="job"?id="input4"?/><!---->p>
  7. <!---->form>
  8. <button?id="send_ajax">提交<!---->button>
  9. <button?id="test_post">OST提交<!---->button>
  10. <button?id="test_get">GET提交<!---->button>
JS:
1、引入jquery框架:
代码: 复制内容到剪贴板
  1. <script??type="text/javascript"?src="../js/jquery.js"></script>
2、构建AJAX,JQUERY的好处是不需要在XHTML中使用JS代码来触发事件了,可以直接封装在JS文件中:
代码: 复制内容到剪贴板
  1. <script?type="text/javascript">
  2. //$.ajax()方式
  3. $(document).ready(function?(){
  4. ???$('#send_ajax').click(function?(){?//直接把onclick事件写在了JS中,而不需要混在XHTML中了
  5. ??????????var?params=$('input').serialize();?//序列化表单的值,与prototype中的form.serialize()相同
  6. ?????????$.ajax({
  7. ???????????????url?:'ajax_test.php',??//后台处理程序
  8. ???????????????type:'post',????//数据发送方式
  9. ?????????????dataType:'json',??//接受数据格式
  10. ???????????????data:params,??//要传递的数据
  11. ???????????????success:update_page??//回传函数(这里是函数名)
  12. ???????????????});
  13. ????????});
  14. });
  15. function?update_page?(json)?{?//回传函数实体,参数为XMLhttpRequest.responseText
  16. ???????var?str="姓名:"+json.username+"";
  17. ???????str+="年龄:"+json.age+"";
  18. ???????str+="性别:"+json.sex+"";
  19. ???????str+="工作:"+json.job;
  20. ???????$("#result").html(str);
  21. }
  22. //$.post()方式:
  23. $(function?(){//$(document).ready(function?(){?的简写
  24. ??????$('#test_post').click(function?(){
  25. ????????????????$.post('ajax_test.php',
  26. ???????????????{username('#input1').val(),age('#input2').val(),sex('#input3').val(),job('#input4').val()},
  27. ????????????????function?(data){?//回传函数
  28. ????????????????var?myjson='';
  29. ???????????????eval('myjson='+data+';');
  30. ???????????????$('#result').html("姓名:"+myjson.username+"
  31. 工作:"+myjson['job']);
  32. ???????????????});
  33. ???????});
  34. });
  35. $.get()方式:
  36. $(function?(){
  37. ?????????$('#test_get').click(function?(){
  38. ?????????????????????$.get('ajax_test.php',
  39. ?????????????????????{username("#input1").val(),age("#input2").val(),sex("#input3").val(),job("#input4").val()},
  40. ?????????????????????function??(data)?{
  41. ???????????????????????????var?myjson='';
  42. ???????????????????????????eval("myjson="+data+";");
  43. ???????????????????????????$("#result").html(myjson.job);
  44. ??????????????????????});
  45. ???????????});
  46. });
  47. </script>
PHP代码:
代码: 复制内容到剪贴板
  1. <!---->php
  2. $arr=$_POST;?//若以$.get()方式发送数据,则要改成$_GET.或者干脆_REQUEST
  3. $myjson=json_encode($arr);?
  4. echo?$myjson;
  5. ?>

你可能感兴趣的:(jquery,PHP,json,Ajax,框架)