使用php怎么实现接口与前端数据交互
创始人
2024-12-08 08:42:02
0次

数据交互实现1:查询

1.mysql 数据库建表
2.php查询接口
3.前端数据展现

mysql 数据库建表

  • 数据库名称:crud

  • 第一个表名:t_users

  • 主键:user_id,自增长排列

使用php怎么实现接口与前端数据交互

php:

fetch_assoc()){
      $data[] = $row;
    }
    
    $json = json_encode(array(
      "resultCode"=>200,
      "message"=>"查询成功!",
      "data"=>$data
    ),JSON_UNESCAPED_UNICODE);
    
    //转换成字符串JSON
    echo($json);
  }
  
  
  /**查询服务器中的数据
   * 1、连接数据库,参数分别为 服务器地址 / 用户名 / 密码 / 数据库名称
   * 2、返回一个包含参数列表的数组
   * 3、遍历$sqls这个数组,并把返回的值赋值给 $s
   * 4、执行一条mysql的查询语句
   * 5、关闭数据库
   * 6、返回执行后的数据
   */
  function query_sql(){
    $mysqli = new mysqli("127.0.0.1", "root", "root", "crud");
    $sqls = func_get_args();
    foreach($sqls as $s){
      $query = $mysqli->query($s);
    }
    $mysqli->close();
    return $query;
  }
?>

前端实现:




  
    
    
    
    
    
    
    
    
    
    
    
    
    
    
      #table {
        padding: 0;
      }
      
      #table>tbody>tr {
        cursor: pointer;
      }
      
      #table>tbody>tr>td.bs-checkbox {
        vertical-align: middle;
      }
    
    增删改查
  

  
    
      删除
      新建
    
    
                                         var $table = $('#table'),         $remove = $('#remove');       $(function() {         searchData();       });       function prepareDisplayData(data) {         return {           total: data.data.length,           fixedScroll: false,           rows: data.data         };       }       function searchData() {         var search_url = "./php/data.php";         //url 中问号后面的参数 action,这个对象就是查询的参数         var dataParam = {           action: "init_data_list"         };         $.ajax({           type: "get",           url: search_url,           data: dataParam,           dataType: 'json',           contentType: 'application/json; charset=utf-8',           success: function(data) {             //测试是否可以拿到php中的数据             console.log(data);             //遍历这个数组             if(data.resultCode == 200) {               var itemArr = data.data;               for(var i = 0; i < itemArr.length; i++) {                 var item = itemArr[i];                 console.log(item);               }             }             //bootstrap-table 组织数据             var displayData = prepareDisplayData(data);             if(displayData.total > 0) {               $('#table').bootstrapTable('load', displayData);             } else {               console.log("last page or empty.");             }           },           error: function(data) {             alert('服务器出错');           },         });       }       $('#table').bootstrapTable({         pagination: true,         sidePagination: 'server', //设置为服务器端分页         pageNumber: 1,         pageSize: 10,         pageList: [10, 20, 50, 100],         search: true,         showColumns: true,         showRefresh: true,         columns: [{           field: 'state',           checkbox: true,         }, {           field: 'user_id',           title: '用户Id',           width: '50',           align: 'center',           valign: 'middle'         }, {           field: 'user_name',           title: '用户名称',           width: '500',           align: 'center',           valign: 'middle'         }, {           field: 'user_age',           title: '用户年龄',           width: '500',           align: 'center',           valign: 'middle'         }, {           field: 'user_sex',           title: '用户性别',           width: '500',           align: 'center',           valign: 'middle'         }, {           field: 'user_add',           title: '编辑',           formatter: forwardFormatter,           width: '500',           align: 'center',           valign: 'middle'         }]       }).on('page-change.bs.table', function(e, page, size) {         fillData();       }).on('check.bs.table uncheck.bs.table check-all.bs.table uncheck-all.bs.table', function() {         var tes = !$table.bootstrapTable('getSelections').length         $remove.prop('disabled', !$table.bootstrapTable('getSelections').length);       });              function forwardFormatter(value, row, index) {         var value = "修改";         return "" + value + "";       }        

实现效果:

使用php怎么实现接口与前端数据交互

数据交互实现2:删除

在做删除时遇到不少的坑,究其原因是因为对SQL语句不熟悉,对php不熟悉,不过,总结了以下几点,供参考:

1.delete 返回的参数只能用 $_GET 获取;

2.delete 返回的参数要放在URL中,不能放在body中;body中的参数是用来查询的;

3.SQL语句一定要熟练,一步错,步步错;

4.要在数据库中执行SQL语句检查语句是否执行正确,要使用 Rest Client 测试URL请求是否正确;

php:

前端实现JS部分:

var $table = $('#table'),
  $remove = $('#remove');

  $(function() {
    delData();
  });

function delData() {
        $remove.on('click', function() {
          if(confirm("是否继续删除")) {
            var rows = $.map($table.bootstrapTable('getSelections'), function(row) {
              //返回选中的行的索引号
              return row.user_id;
            });
          }
          
          $.map($table.bootstrapTable('getSelections'),function(row){
            var del_url = "./php/data.php";
            //根据userId删除数据,因为这个id就是 传给服务器的参数
            var rowId = row.user_id;
            
            $.ajax({
              type:"delete",
              url:del_url + "?action=del_row&rowId=" + rowId,
              dataType:"html",
              contentType: 'application/json;charset=utf-8',
              success: function(data) {
                $table.bootstrapTable('remove',{
                  field: 'user_id',
                  values: rows
                });
                $remove.prop('disabled', true);
              },
              error:function(data){
                alert('删除失败!');
              }
            });
          });
        })
      }

调试方法:

使用php怎么实现接口与前端数据交互

使用php怎么实现接口与前端数据交互

使用php怎么实现接口与前端数据交互

数据交互实现3:新增

在写php的方法上,我觉得我的方法是有问题的,因为所有的参数,也就是所有的需要新增的数据都是通过 接口以 ? 后跟参数的方式添加成功的。功能是可以实现,但是如果新增的数据较大,这个方法显示是不可行的,但是还没有找到合适的方法,烦请大侠们指点。

php:

query($s);
    }
    $mysqli->close();
    return $query;
  }
?>

前端实现JS部分:

html使用了bootstrap 的 modal作为新增时的弹出框


    
      
        
          
            ×
            用户新增
          
                                                       用户名称                                
                               用户年龄                                
                               用户性别                                                         请选择                     男                     女                                    
              
                       
                       关闭             保存           
        
      
    
var $table = $('#table'),
   $remove = $('#remove');

  $(function() {
      searchData();
    delData();
        
    $('#save').click(function(){
      addData();
    });
  }); 
function addData(){
        var userName = $('#userName').val();
        var userAge = $("#userAge").val();
        var userSex = $('#user-sex').val() == '0' ? '男' : '女';
        
        var addUrl = "./php/data.php?action=add_row&user_name=" + userName + "&user_age=" + userAge + "&user_sex=" + userSex;
        
        $.ajax({
          type:"post",
          url:addUrl,
          dataType:'json',
          contentType:'application/json;charset=utf-8',
          success:function(data){
            console.log("success");
          },
          error:function(data){
            console.log("data");
            //添加成功后隐蒧modal框
            setTimeout(function(){
              $('#exampleModal').modal('hide');
            },500);
              //隐藏modal框后重新加载当前页
            setTimeout(function(){
              searchData();
            },700);
          }
        });
      }

上一篇:怎么在php中利用curl请求接口获取数据

下一篇:怎么在php项目中实现一个收藏功能

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...