GVKun编程网logo

为什么数据表不显示从响应的 ajax 排序的数据?(为什么数据表不显示从响应的 ajax 排序的数据结构)

18

本篇文章给大家谈谈为什么数据表不显示从响应的ajax排序的数据?,以及为什么数据表不显示从响应的ajax排序的数据结构的知识点,同时本文还将给你拓展1.10.12中的数据表ajax加载对象不起作用、a

本篇文章给大家谈谈为什么数据表不显示从响应的 ajax 排序的数据?,以及为什么数据表不显示从响应的 ajax 排序的数据结构的知识点,同时本文还将给你拓展1.10.12中的数据表ajax加载对象不起作用、ajax – 数据表:自定义响应处理、ajax 服务器回应的数据格式、ajax为什么得不到servlet返回的json数据?等相关知识,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

为什么数据表不显示从响应的 ajax 排序的数据?(为什么数据表不显示从响应的 ajax 排序的数据结构)

为什么数据表不显示从响应的 ajax 排序的数据?(为什么数据表不显示从响应的 ajax 排序的数据结构)

如何解决为什么数据表不显示从响应的 ajax 排序的数据??

我设法直接从 ajax 显示数据表。但唯一的问题是。该表未按原样显示数据。

来自 report_ajax.PHP [json] 的数据

{"data":[
["22:00:00","16dee076f62ce35f3b64ee14d8fec748","0"],["22:15:00","8aa57813201bc78849baa56eafb0f04c","17b6bd8adfc11c4efe571edacc528d58","a4048f751f4f9e4b2779aa52dfcf5903",["22:30:00","c39624dca09de650ae28b4e68f09f7a1",["22:45:00","3a471c7b5204ae0d6fd510006c67b89b",["23:00:00","202dc747da31af7b70a714823df35fbc",["23:25:00","71ad04376d1a2b6e0d5fbb88d2efcafe",["23:30:00","b87c8dc8789fdb0b947b8bfb39efd88c",["23:45:00","0f1cab9da99f3da84efd62cee0d447e8",["00:05:00","6a601ce30d73cb3525cae8269e658140",["00:15:00","99bf53fb6c458d23060846a7478c23ef",["00:30:00","c9e42098c79fadbcfeb8f2137b5d6b27",["00:45:00","ba87e8493eed4768384123e1e242b2a7",["00:50:00","9d55061b4af7116732260c6c3f505b9a","0"]
.
.
.
]}

如您所见,第一个数组是 time。我希望 datatable 会与此订单一起显示。但结果是,它对我的​​数据进行了排序,并且从 00:0023:45 运行得非常好。

这是我的 jquery:

                var table=$(''#dataTable'').DataTable( {
                ajax: "report_ajax.PHP",//stateSave: true,"pageLength": 25,});

我希望数据表显示与发送到的数据完全一样。我应该修复什么?

解决方法

你只需要添加一个参数,它不会对初始列表中的数据进行排序

"order": []

所以你的代码应该是

       var table=$(''#dataTable'').DataTable( {
            ajax: "report_ajax.php",//stateSave: true,"pageLength": 25,"order": []                  
        });

1.10.12中的数据表ajax加载对象不起作用

1.10.12中的数据表ajax加载对象不起作用

如何解决1.10.12中的数据表ajax加载对象不起作用?

我的代码在下面。我无法在ajax调用上搜索数据表数据。在返回了ajax调用数据后,如调试器中所示。我的数据表版本是1.1.0.12和jquery-1.12.3.min.js

{数据:[{workstation_no:1123,状态:“可用”,工作站类型:“系统”,员工名称:“约翰”},…] 0:{workstation_no:1123,状态:“可用”,workstation_type:“系统”,employee_name:“ John”} 1:{workstation_no:1126,状态:“可用”,workstation_type:“ HR”,员工名:“ Anna”}]}

但是默认搜索无效。任何帮助表示赞赏。

var table = $(''#workstationTable'').DataTable({
            "serverSide": true,dom: "Blfrtip","aoColumns": [
                {sWidth: ''35%'',mData: ''employee_Name'',name:"Employee Name" },{sWidth: ''20%'',mData: ''workstation_no'',name:"Workstation No."},{sWidth: ''35%'',mData: ''workstation_type'',name:"Workstation Type"},{sWidth: ''10%'',mData: ''status'',name:"Status"},],''columnDefs'': [
                             {"defaultContent": "-",''className'': ''dt-center'',''orderable'': true  },{"defaultContent": "-",''orderable'': true },''buttons'': [                                
                {   
                    extend: ''excelHtml5'',title: ''<spring:message code="lebel.workstation_dtl" />''
                            
                } 
            ],"oLanguage": {
                "sSearch": "Filter","sZeroRecords": "<ptext-align:left''><spring:message code="lebel.no_data_found" /></p>","sEmptyTable": ""
            },"aLengthMenu": [[10,25,50,"-1"],[10,"All"]],"scrollX" : "100%",//"scrollY" : parseInt($(''#inner-fixed-pane'').offset().top-($(''#collapseId'').offset().top+$(''#collapseId'').outerHeight())-155)+"px","scrollY" : parseInt($(''#inner-fixed-pane'').offset().top-155)+"px","pagingType": "full_numbers","idisplayLength": -1,ajax: {
                  type:"POST",url : "getAllWorkstationList?status="+status1+"&office="+office1+"&branch="+branch1,contentType: "application/json; charset=utf-8",dataType: "json",dataSrc: function(res){
                      var count = res.data.length;
                      alert(count);

                      return res.data;
                  }
               
                  
                
        } 
        });

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

ajax – 数据表:自定义响应处理

ajax – 数据表:自定义响应处理

我开始在 AngularJSDataTables上工作,想知道是否可以自定义DataTables期待的响应.目前对DataTables插件的期望是这样的:
{
    "draw": 1,"recordsTotal": 57,"recordsFiltered": 5,"data": [...]
}

在服务器端,API正在由django-tastypie处理

服务器的响应是:

{
     Meta: {
        limit: 20,next: null,offset: 0,prevIoUs: null,total_count: 2
     },objects: [...]
 }

那么,有没有办法调整Datatables插件来接受/映射这个响应,否则我将不得不找到一个方法来添加预期的字段到api?

到目前为止我已经做到了:

var deptTable = angular.element('#deptManagementTable').DataTable({
        processing: true,serverSide: true,pagingType: "simple_numbers",ajax: {
            url: "/client/api/v1/departments/",data: function(d) {
                d.limit = d.length;
                d.offset = d.start;
                d.dept_name__icontains = d.search.value;
            },dataSrc: function(json) {
                for (var i=0,len=json.objects.length ; i<len ; i++) {
                    json.objects[i].DT_RowId = json.objects[i].dept_id;
                }
                return json.objects;
            }
        },aLengthMenu: [
            [5,25,50,100],[5,100]
        ],idisplayLength: 5,columns: [
            {
                data: "dept_name"
            },{
                data: "dept_created_on",render: function ( data,type,full,Meta ) {
                    var dateCreated = new Date(data);
                    dateCreated = dateCreated.toLocaleDateString();
                    return dateCreated;
                }
            }
        ]
    });

任何帮助将不胜感激.

提前致谢 :)

您可以将功能传递给DataTables ajax option,这将使您完全控制如何在将数据传递到DataTables之前获取和映射数据.
.DataTable({
    serverSide: true,ajax: function(data,callback,settings) {
        // make a regular ajax request using data.start and data.length
        $.get('/client/api/v1/departments/',{
            limit: data.length,offset: data.start,dept_name__icontains: data.search.value
        },function(res) {
            // map your server's response to the DataTables format and pass it to
            // DataTables' callback
            callback({
                recordsTotal: res.Meta.total_count,recordsFiltered: res.Meta.total_count,data: res.objects
            });
        });
    }
});

上述解决方案已经通过jQuery DataTables 1.10.4进行了测试.

由于这个问题是用Angular标记的,所以这里是使用angular-datatables的解决方案.

<div ng-controller="testCtrl">
    <table datatable dt-options="dtOptions" dt-columns="dtColumns"></table>
</div>
.controller('testCtrl',function($scope,$http,DTOptionsBuilder,DTColumnBuilder) {
    $scope.dtOptions = DTOptionsBuilder.newOptions()
        .withOption('serverSide',true)
        .withOption('ajax',function(data,settings) {
            // make an ajax request using data.start and data.length
            $http.get('/client/api/v1/departments/',{
                limit: data.length,dept_name__icontains: data.search.value
            }).success(function(res) {
                // map your server's response to the DataTables format and pass it to
                // DataTables' callback
                callback({
                    recordsTotal: res.Meta.total_count,data: res.objects
                });
            });
        })
        .withDataProp('data'); // IMPORTANT¹

    $scope.dtColumns = [
        // your column deFinitions here
    ];
});

上述解决方案已经使用角度数据表0.3.0 DataTable 1.10.4进行了测试.

¹这里要注意的重要部分是角度数据表解决方案要求.withDataProp(‘data’)可以工作,而纯jQuery DataTables解决方案没有数据:’data’选项.

ajax 服务器回应的数据格式

ajax 服务器回应的数据格式

服务器可以给客户端回应2种格式的数据:(2018-08-31)

   (1) 字符串格式的数据:

       JavaScript接收的时候使用xhr.responseText; 如果服务器给ajax回应数组格式的数据的时候,需要在服务器端通过json_encode()函数将数组序列化成json数据,再返回

      

分享图片

      客户端接收到的数据都是字符串类型的,即使下面数据看似是JavaScript的字面量对象,其实是一个字符串:

      

分享图片

      

分享图片

      

分享图片

      json数据指的是一种数据格式{}JavaScript的对象

      区别在于json数据中没有方法体而对象有所以为了避免歧义,我们称呼json的时候,表示是一种数据格式,而我们说对象的时候,指的就是属性、方法的集合

      说明JavaScript接收到数据之后,仅仅是字符串类型的json格式的数据操作起来很不方便如果json数据能够转换成JavaScript的字面量对象的话就很好了需要通      过eval()函数实现原理eval()函数会将小括号中的参数作为表达式运行

       例如:

        

分享图片

    (2) xml格式的数据:

        xml是另一种数据格式现在使用较少之前有做单独介绍如需了解请查看之前博客;

          博客链接:https://www.cnblogs.com/lxc-bky/p/9567979.html

ajax为什么得不到servlet返回的json数据?

ajax为什么得不到servlet返回的json数据?

1、json数据:json = {"name":"aaa","email":"15135131","addr":"深圳","tel":"123456789"}

infoServlet输出如下:

response.setContentType("application/x-json;charset=utf-8");

PrintWriter out= response.getWriter();

out.print(json);

out.flush();

2、jquery

$.ajax({

type:"post",

url:"infoServlet",

dataType:"json",

success:function(data){

$.each(data,function(index,value){

alert(data);

});

}

});


data是空的。。。。。。为什么啊?

关于为什么数据表不显示从响应的 ajax 排序的数据?为什么数据表不显示从响应的 ajax 排序的数据结构的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于1.10.12中的数据表ajax加载对象不起作用、ajax – 数据表:自定义响应处理、ajax 服务器回应的数据格式、ajax为什么得不到servlet返回的json数据?等相关知识的信息别忘了在本站进行查找喔。

本文标签: