将DataTable作为POST数据发送

时间:2015-11-09 07:00:08

标签: php laravel datatables

我正在使用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页的数据..

如何发送所有数据?

1 个答案:

答案 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 );
});