我正在使用laravel和dataTables。这是我的观点,dataTables工作正常,并限制表每次分页12行。
@foreach($products as $result)
<tr class="even pointer">
<input name="id{{ $idx }}" value="{{ $result->id }}" type="hidden">
<td class="a-center "><input value="{{ $result->qtyorder }}" name="qty{{ $idx }}" type="text"></td>
<td class=" ">{{ $result->item }}</td>
<td class=" "><input value="{{ $result->discount }}" name="price{{ $idx }}" type="text"></td>
</tr>
<?php $idx++; ?>
@endforeach
问题是,当我点击提交时,它只发送12个数据,而不是在第2,3页发送数据,...... 当我在第2页和submint旁边尝试时,只发送了第2页的数据..
如何发送所有数据?
答案 0 :(得分:0)
为了达到最佳做法,请将表格包装在表单中,然后将要发布的数据放入隐藏输入中但不显示给用户
<form method="post" action="">
<!-- your table -->
<input type="hidden" name="name" value="VALUE/>
<input type="hidden" name="name1" value="VALUE1/>
<input type="hidden" name="name2" value="VALUE2/>
<button type="submit">Post</button>
</form>
替代方式,简单但不是一个好的做法是使用JQuery / Javascript
运行表并获取html(文本)属性。实施例
var columns = [
'cl001',
'cl002',
'cl003'
];
var tableObj = $('#tableID tbody tr').map(function (i) {
var row = {};
$(this).find('td').each(function (i) {
var rowID = columns[i];
row[rowID] = $(this).text();
});
return row;
}).get();
$.post( "ACTIONURL", { data: tableObj })
.done(function( data ) {
console.log( data );
});