Nic*_*iwi 6 javascript jquery datatables
使用select插件,我试图从所选行中获取数据,rows().data()但它所提取的数据远远超过单元数据数组,我想在Ajax POST请求中提交该数据,但我得到了413错误说"请求实体太大".
https://datatables.net/reference/api/rows().数据()
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();
Run Code Online (Sandbox Code Playgroud)
但是从5个单元格中选择了3行并且具有一些非常小的值,Chrome开发工具会冻结尝试加载所有内容,因为不知何故该值还包含表格中的所有2200行.:/
我的代码来自这里:https://datatables.net/extensions/select/examples/api/get.html
在rowData的对象中,有一个数组与一堆其他函数混合在一起,该数组包含了我需要的所有数据,但我无法将其与其他所有数据分开.
我只想要那些前3行,阵列.
传递给:
$.post('/generate', rowData, function() {
console.log('done');
});
Run Code Online (Sandbox Code Playgroud)
API方法rows().data()返回类似于Array的对象,它也是DataTables API实例.
使用toArray()API方法将API实例转换为本机Javascript数组对象.
var rowData = dataTable.rows( { selected: true } ).data().toArray();
Run Code Online (Sandbox Code Playgroud)