博客列表 >第二十课 Ajax & POST方法

第二十课 Ajax & POST方法

Mr.Ran
Mr.Ran原创
2021年08月03日 09:41:30796浏览

$.post() 方法

  • 使用HTTP POST 方式请求服务器的数据
  • Jquery从服务器获取数据有两种数据格式:XML、JSON,常用JSON
  • 语法格式:$.post(url,data,function(),dataType)
    url:服务器的数据接口,一般为:网址、域名、IP地址
    data:传给服务器的数据
    function() :接口返回的数据和状态
    dataType :数据格式类型:XML、JSON

练习代码

引入 Jquer CDN:

  1. <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script>

HTML 代码片段

  1. <table border="1">
  2. <tr>
  3. <th>编号</th>
  4. <th>名称</th>
  5. <th>首字母</th>
  6. <th>拼音</th>
  7. <th>纬度</th>
  8. <th>经度</th>
  9. </tr>
  10. </table>
  11. <a href="#" id="up" >上一页</a>
  12. <a href="#" id="lower" >下一页</a>

JS代码

  1. <script>
  2. var js_page = 1; //当前页
  3. var js_pageline = 10; //每页行数
  4. var js_count = 0; //总页数
  5. page(js_page);
  6. //下一页
  7. $("#lower").click(function(){
  8. if (js_page<js_count) {
  9. js_page = js_page + 1;
  10. console.log(js_page);
  11. page(js_page);
  12. }
  13. })
  14. //上一页
  15. $("#up").click(function(){
  16. if (js_page>1) {
  17. js_page = js_page - 1;
  18. console.log(js_page);
  19. page(js_page);
  20. }
  21. })
  22. //分页方法
  23. function page(js_page){
  24. if(js_page == 1){
  25. $("#up").hide();
  26. }else{
  27. $("#up").show();
  28. }
  29. if(js_page == js_count){
  30. $("#lower").hide();
  31. }else{
  32. $("#lower").show();
  33. }
  34. $.post(
  35. "http://admin.ouyangke.cn/index.php/api/index/prov_list/",
  36. {
  37. page:js_page,
  38. limit:js_pageline,
  39. fields:"area_id",
  40. order:"asc",
  41. },
  42. function(data,status){
  43. let html_data = "";
  44. for(let i = 0; i< data.data.length; i++){
  45. html_data += "<tr><td>"+data.data[i].area_id+"</td><td>"+data.data[i].area_name+"</td><td>"+data.data[i].pinyin+"</td><td>"+data.data[i].first_pinyin+"</td><td>"+data.data[i].lng+"</td><td>"+data.data[i].lat+"</td></tr>";
  46. }
  47. $("table").html(html_data);
  48. js_count = Math.ceil(data.count/js_pageline);
  49. },
  50. "json"
  51. )
  52. }
  53. </script>

Ajax

$.ajax 是jquery底层封装的一个方法

  • 语法:$.ajax({key:value})
  • 参数:
    url:必须、请求的接口
    data:数据接口、参数
    type:get、post
    async:是否要异步处理,布尔值
    dataType:服务器的数据类型
    timeout:超时时间,毫秒
  • 方法:
    success(data,status) 请求成功的方法
    error(data,status) 请求失败的方法
    complete(data,status) 不管成功还是失败,都会执行

异步处理:ajax代码,其他代码不会受它影响,会直接执行。

增加代码演示

URL数据接口
http://admin.ouyangke.cn/index.php/api/index/prov_add

引入 Jquer CDN:

  1. <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script>

html代码片段

  1. <form action="" onsubmit="return false">
  2. <table border="1">
  3. <tr><th>名称</th><td><input type="text" id="area_name"></td></tr>
  4. <tr><th>首字母</th><td><input type="text" id="pinyin"></td></tr>
  5. <tr><th>拼音</th><td><input type="text" id="first_pinyin"></td></tr>
  6. <tr><th>纬度</th><td><input type="text" id="lng"></td></tr>
  7. <tr><th>经度</th><td><input type="text" id="lat"></td></tr>
  8. </table>
  9. <button id="submit" >提交</button>
  10. </form>

JS 代码

  1. //添加
  2. $("form").submit(function(){
  3. $.ajax({
  4. url:"http://admin.ouyangke.cn/index.php/api/index/prov_add",
  5. type:"POST",
  6. data:{
  7. area_name:$("#area_name").val(),
  8. pinyin:$("#pinyin").val(),
  9. first_pinyin:$("#first_pinyin").val(),
  10. lng:$("#lng").val(),
  11. lat:$("#lat").val(),
  12. },
  13. dataType:"json",
  14. success(data,status){
  15. alert(data.msg);
  16. if (data.code!=1) {
  17. window.location.href ="ajax_list.html"; //跳转到列表页面
  18. }
  19. },
  20. })
  21. })

修改代码演示

URL数据接口
http://admin.ouyangke.cn/index.php/api/index/prov_edit

引入 Jquer CDN:

  1. <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script>

html代码片段

  1. <form action="" onsubmit="return false">
  2. <table border="1">
  3. <tr><th>编号</th><td><span id="area_id"></span></td></tr>
  4. <tr><th>名称</th><td><input type="text" id="area_name"></td></tr>
  5. <tr><th>首字母</th><td><input type="text" id="pinyin"></td></tr>
  6. <tr><th>拼音</th><td><input type="text" id="first_pinyin"></td></tr>
  7. <tr><th>纬度</th><td><input type="text" id="lng"></td></tr>
  8. <tr><th>经度</th><td><input type="text" id="lat"></td></tr>
  9. </table>
  10. <button id="submit" >修改提交</button>
  11. </form>

JS 代码

  1. <script>
  2. //获取参数
  3. var areaid = getUrlVars();
  4. var aid = areaid["id"];
  5. //填充数据
  6. $.ajax({
  7. url:"http://admin.ouyangke.cn/index.php/api/index/prov_one",
  8. type:"POST",
  9. data:{area_id:aid},
  10. dataType:"json",
  11. success(data,status){
  12. $("#area_id").text(aid);
  13. $("#area_name").val(data.data["area_name"]);
  14. $("#pinyin").val(data.data["pinyin"]);
  15. $("#first_pinyin").val(data.data["first_pinyin"]);
  16. $("#lng").val(data.data["lng"]);
  17. $("#lat").val(data.data["lat"]);
  18. }
  19. })
  20. //修改操作
  21. $("form").submit(function(){
  22. $.ajax({
  23. url:"http://admin.ouyangke.cn/index.php/api/index/prov_edit",
  24. type:"POST",
  25. data:{
  26. area_id:aid,
  27. area_name:$("#area_name").val(),
  28. pinyin:$("#pinyin").val(),
  29. first_pinyin:$("#first_pinyin").val(),
  30. lng:$("#lng").val(),
  31. lat:$("#lat").val(),
  32. },
  33. dataType:"json",
  34. success(data,status){
  35. alert(data.msg);
  36. if (data.code!=1) {
  37. window.location.href ="ajax_list.html";
  38. }
  39. },
  40. })
  41. })
  42. //获取链接参数的方法
  43. function getUrlVars()
  44. {
  45. var vars = [], hash;
  46. var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
  47. for(var i = 0; i < hashes.length; i++)
  48. {
  49. hash = hashes[i].split('=');
  50. vars.push(hash[0]);
  51. vars[hash[0]] = hash[1];
  52. }
  53. return vars;
  54. }
  55. </script>

删除代码演示

URL数据接口
http://admin.ouyangke.cn/index.php/api/index/prov_del

引入 Jquer CDN:

  1. <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script>

HTML 代码片段:

  1. <table border="1">
  2. <tr>
  3. <th>编号</th>
  4. <th>名称</th>
  5. <th>首字母</th>
  6. <th>拼音</th>
  7. <th>纬度</th>
  8. <th>经度</th>
  9. <th colspan="2">操作</th>
  10. </tr>
  11. </table>
  12. <a id="more" >更多</a>
  13. <a href="ajax_add.html">增加</a>

JS代码:

  1. <script>
  2. var js_page = 1; //当前页
  3. var js_pageline = 10; //每页行数
  4. var js_count = 0; //总页数
  5. page(js_page);
  6. //下一页
  7. $("#more").click(function(){
  8. if (js_page<js_count) {
  9. js_page = js_page + 1;
  10. console.log(js_page);
  11. page(js_page);
  12. }
  13. })
  14. //分页方法
  15. function page(js_page){
  16. if(js_page == js_count){
  17. $("#more").hide();
  18. }else{
  19. $("#more").show();
  20. }
  21. $.ajax({
  22. url:"http://admin.ouyangke.cn/index.php/api/index/prov_list/",
  23. data:{
  24. page:js_page,
  25. limit:js_pageline,
  26. fields:"area_id",
  27. order:"desc",
  28. },
  29. type:"POST",
  30. async:true,
  31. dataType:"json",
  32. success(data,status){
  33. let html_data = "";
  34. for(let i = 0; i< data.data.length; i++){
  35. html_data += "<tr><td>"+data.data[i].area_id+"</td><td>"+data.data[i].area_name+"</td><td>"+data.data[i].pinyin+"</td><td>"+data.data[i].first_pinyin+"</td><td>"+data.data[i].lng+"</td><td>"+data.data[i].lat+"</td><th><button onclick='toEdit("+data.data[i].area_id+")'>修改</button></th><th><button onclick='del("+data.data[i].area_id+")'>删除</button></th></tr>";
  36. }
  37. $("table").append(html_data);
  38. js_count = Math.ceil(data.count/js_pageline);
  39. }
  40. })
  41. }
  42. //删除方法
  43. function del(id){
  44. $.ajax({
  45. url:"http://admin.ouyangke.cn/index.php/api/index/prov_del",
  46. data:{area_id:id},
  47. type:"POST",
  48. async:true,
  49. dataType:"json",
  50. success(data,status){
  51. if (data.code == 0) {
  52. alert("删除成功");
  53. window.location.href ="ajax_list.html";
  54. }else{
  55. alert(data.msg);
  56. }
  57. }
  58. })
  59. }
  60. //跳转修改页面
  61. function toEdit(areaid) {
  62. $.ajax({
  63. data:{area_id:areaid},
  64. type:"PSOT",
  65. async:true,
  66. dataType:"json",
  67. complete:function(){
  68. location.href = "ajax_edit.html?id=" + areaid;
  69. }
  70. })
  71. }
  72. </script>
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议
ᝰꫛꫀꪝ吴2021-07-29 19:25:421楼
打算复合管