Senario: So basically I'm using DataTables and have checkboxes on its first column. My DataTables have multiple pages (pagination).
The Problem: When I check a few boxes on a page (could be any page), AND also check a few on OTHER pages.
The results only gets saved if I am on the current page
I'm quite new to datatables/javascript and can't really figure out how to solve this issue.
$('#formDataTable').DataTable({
responsive: true,
autoWidth: true,
"bFilter": true,
"bRetrieve": true,
"bInfo": true,
"sPageFirst": false,
"sPageLast": false,
});
I have read these SO pages. Checkboxes will only work on current pagination page in jQuery datatables Link is currently dead to this question -> Pagination with selected check boxes. Checkboxes will only work on current pagination page. jQuery datatables
CAUSE
jQuery DataTables removes non-visible rows from DOM for performance reasons, that is why when you submit the form only visible checkboxes get submitted.
SOLUTION
You may need to turn those
<input type="checkbox">
that are checked and don't exist in DOM into<input type="hidden">
upon form submission.For example, to submit form with values of all checkboxes:
If you're submitting the form via Ajax, it's even simpler.
For example, to submit form via Ajax with values of all checkboxes:
DEMO
See our article jQuery DataTables: How to submit all pages form data for demonstration.
after trying lots of way finally i found this sweet and simple way of solving this problem!!!! here #contect_form is form id ...you must put your data table inside a form coz on page load you can initialize datatable rows
if you are using Rails what about using Form Helpers?
If you are creating a new record, one simple example is:
Even if you have several pages, if you keep all your form helpers inside the
form_for
method, everything should be saved to your database.