2015-11-09 120 views
1

我正在使用laravel和dataTables。這是我的觀點與dataTables工作正常,並限制每個分頁表12行。發送數據表作爲POST數據

@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 

的問題是,當我在第2頁點擊提交它只是發送12個數據,而不是派2頁,3上的數據,... 當我下一次嘗試2頁和submint,只有數據發送..

如何發送所有數據?

回答

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); 
}); 
+0

如果行數取決於數據庫上的產品數據,該怎麼辦? – yudijohn

+0

如果你真的想顯示數據庫中的數據到html,然後提交回到你的後端程序,你只需要查詢表中的所有行並嘗試以上解決方案。 – ZenithS