博主信息
博文 14
粉丝 0
评论 0
访问量 12806
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
第二十课 Ajax & POST方法
Mr.Ran
原创
1059人浏览过

$.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>
批改老师:PHPzPHPz

批改状态:合格

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
1条评论
ᝰꫛꫀꪝ吴 2021-07-29 19:25:42
打算复合管
1楼
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学