2015-12-03 22 views
5

selectプラグインを使用して、選択した行からrows().data()を使用してデータを取得しようとしていますが、そのデータはセルデータの配列よりもそのデータをAjaxのPOST要求で送信しますが、413エラーが発生しました。「リクエストエンティティが大きすぎます」というエラーが表示されます。DataTablesは選択された行のセルの配列データを取得します

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(); 

しかし、どういうわけか、その値がとしても、テーブル内のすべての2200行を含むようにいくつかの非常に小さな値と5個の細胞を選択した3行から、クロームのdevのツールは、そのすべてをロードしようとフリーズよく:/

私のコードはここから取られる:https://datatables.net/extensions/select/examples/api/get.html rowDataが他の機能のヒープと混合配列がありますあるオブジェクトで

、配列は私が必要とするすべてのデータを持っているが、私はそれを分離カント他のすべてのものを形成する。

rowData内部データ: enter image description here

私はちょうどそれらの最初の3行、列をしたいです。

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

データテーブル定義を投稿できますか? –

+0

定義はどういう意味ですか? – Nicekiwi

答えて

4

もDataTableのAPIインスタンスでアレイ状オブジェクトを返すrows().data() APIメソッド:に渡す

toArray() APIメソッドを使用して、APIインスタンスをネイティブJavascript配列オブジェクトに変換します。

var rowData = dataTable.rows({ selected: true }).data().toArray(); 
関連する問題