2015-12-03 11 views
5

Mit dem Select-Plugin, ich versuche, die Daten aus den ausgewählten Zeilen mit rows().data() zu bekommen, aber die Daten, die es zieht, ist viel mehr als das Array von Zelldaten, möchte ich Übergeben Sie diese Daten in einer Ajax POST-Anfrage, aber ich bekomme einen 413 Fehler, der sagt "Request Entity zu groß".DataTables erhalten Array-Daten von Zellen ausgewählter Zeilen Nur

https://datatables.net/reference/api/rows().data()

var dataTable = $('#products').DataTable({ 
    "processing": true, 
    "ajax": "/products", 
    "columns": [ 
    { 
     "className": 'select-checkbox', 
     "defaultContent": '<span style="display:none;">0</span>', 
     "orderDataType": "dom-text", 
     type: 'string' 
    }, 
    { 
     "data": "sku", 
     "className": 'sku-value', 
     "defaultContent": "" 
    }, 
    { 
     "data": "name", 
     "className": 'name-value', 
     "defaultContent": "" 
    }, 
    { 
     "data": "our_price", 
     "className": 'our-price-value price', 
     "defaultContent": 0 
    }, 
    { 
     "data": "sale_price", 
     "className": 'sale-price-value price', 
     "defaultContent": 0 
    }, 
    { 
     "data": "rrp_price", 
     "className": 'rrp-price-value price', 
     "defaultContent": 0 
    }, 
    { 
     "data": "similar_price", 
     "className": 'similar-price-value price', 
     "defaultContent": 0 
    }, 
    { 
     "data": "stores.one.store", 
     "className": 'store-one store', 
     "defaultContent": "" 
    }, 
    { 
     "data": "stores.two.store", 
     "className": 'store-two store', 
     "defaultContent": "" 
    }, 
    { 
     "data": "stores.three.store", 
     "className": 'store-three store', 
     "defaultContent": "" 
    }, 
    { 
     "data": "end_date", 
     "className": 'end-date-value date', 
     "defaultContent": "" 
    }, 
    { 
     "data": "updated_at", 
     "className": 'updated-at-value date', 
     "defaultContent": "" 
    } 
    ], 
    "select": { 
    "style": 'multi', 
    "selector": 'td:first-child' 
    }, 
}); 

var rowData = dataTable.rows({ selected: true }).data(); 

Aber aus 3 Reihen mit 5 Zellen mit einigen sehr kleinen Werten ausgewählt, frieren Chrome Entwickler-Tools bis versuchen, alles zu laden, als irgendwie dieser Wert auch alle 2200 Zeilen in der Tabelle enthält als Gut. :/

ist mein Code von hier genommen: https://datatables.net/extensions/select/examples/api/get.html

In dem Objekt, das rowData ist ein Array mit einem Haufen anderer Funktionen gemischt da drin ist, hat das Array alle Daten, die ich brauche, aber ich kann es nicht trennen bilden alle anderen Sachen.

Die Daten innerhalb rowData: enter image description here

Ich will nur diese ersten drei Zeilen, um das Array.

$.post('/generate', rowData, function() { 
    console.log('done'); 
}); 
+0

Können Sie Ihre Datatendefinition posten –

+0

Was meinen Sie per Definition? – Nicekiwi

Antwort

4

API Methode rows().data() Array-ähnliches Objekt, das auch Datentabellen Instanz API ist zurückgibt:

passieren.

Verwenden Sie die API-Methode toArray(), um die API-Instanz in ein natives Javascript-Array-Objekt zu konvertieren.

var rowData = dataTable.rows({ selected: true }).data().toArray(); 
Verwandte Themen