Blogger Information
Blog 14
fans 0
comment 0
visits 9500
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
第二十课 Ajax & POST方法
Mr.Ran
Original
797 people have browsed it

$.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>
Correcting teacher:PHPzPHPz

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
1 comments
ᝰꫛꫀꪝ吴 2021-07-29 19:25:42
打算复合管
1 floor
Author's latest blog post