Ajax, checkbox megtartása lapozáskor.
Hali.
Ez a probléma már régebbi. Félmegoldásokat sikerült összehoznom, de egyszerűen belekavarodok.
Az egyik script-et szépen össze lehet kapcsolni a szerver oldallal. A másikat kb annyira sikerült üzembe helyeznem hogy az oldalanként megtartotta a checkboxot. Csak kb a kettőt nem sikerült összehoznom.
Kérdés:
Ebben a scriptet melyik rész felel az oldalankénti checkbox megtartásáért? Próbáltam szétszedni a scriptet és biztosra veszem hogy a render lesz az. Azonban mégsem sikerül implementálnom.
Checkbox megtartása lapozáskor
A működő szerver oldallal de nincs checkbox megtartás lapozáskor
Az első, ahol checkbox megtartás van, de szerveroldal nincs.A másik ami gyönyörűen működik szerver oldallal, viszont nincs checkbox megtartás: Próbáltam összehozni a kettőt de nagyon nem ment.
A segítséget előre is köszönöm.
■ Ez a probléma már régebbi. Félmegoldásokat sikerült összehoznom, de egyszerűen belekavarodok.
Az egyik script-et szépen össze lehet kapcsolni a szerver oldallal. A másikat kb annyira sikerült üzembe helyeznem hogy az oldalanként megtartotta a checkboxot. Csak kb a kettőt nem sikerült összehoznom.
Kérdés:
Ebben a scriptet melyik rész felel az oldalankénti checkbox megtartásáért? Próbáltam szétszedni a scriptet és biztosra veszem hogy a render lesz az. Azonban mégsem sikerül implementálnom.
Checkbox megtartása lapozáskor
A működő szerver oldallal de nincs checkbox megtartás lapozáskor
Az első, ahol checkbox megtartás van, de szerveroldal nincs.
- $(document).ready(function (){
- var userData = [
- [ "1", "Email", "Alma", "Member" ],
- [ "2", "Email", "Alma 2", "Member" ]
- ];
- var table = $('#example').DataTable({
- 'data': userData,
- 'columnDefs': [{
- 'targets': 0,
- 'searchable':false,
- 'orderable':false,
- 'className': 'dt-body-center',
- 'render': function (data, type, full, meta){
- return '<input type="checkbox" name="id[]" value="'
- + $('<div/>').text(data).html() + '">';
- }
- }],
- 'order': [1, 'asc'],
- "createdRow": function(row, data, dataIndex){
- $(row).attr("id", "tblRow_" + data[0]);
- }
- });
- // Handle click on "Select all" control
- $('#example-select-all').on('click', function(){
- // Check/uncheck all checkboxes in the table
- var rows = table.rows({ 'search': 'applied' }).nodes();
- $('input[type="checkbox"]', rows).prop('checked', this.checked);
- });
- // Handle click on checkbox to set state of "Select all" control
- $('#example tbody').on('change', 'input[type="checkbox"]', function(){
- // If checkbox is not checked
- if(!this.checked){
- var el = $('#example-select-all').get(0);
- // If "Select all" control is checked and has 'indeterminate' property
- if(el && el.checked && ('indeterminate' in el)){
- // Set visual state of "Select all" control
- // as 'indeterminate'
- el.indeterminate = true;
- }
- }
- });
- $('#frm-example').on('submit', function(e){
- var form = this;
- // Iterate over all checkboxes in the table
- table.$('input[type="checkbox"]').each(function(){
- // If checkbox doesn't exist in DOM
- if(!$.contains(document, this)){
- // If checkbox is checked
- if(this.checked){
- // Create a hidden element
- $(form).append(
- $('<input>')
- .attr('type', 'hidden')
- .attr('name', this.name)
- .val(this.value)
- );
- }
- }
- });
- // FOR TESTING ONLY
- // Output form data to a console
- $('#example-console').text($(form).serialize());
- console.log("Form submission", $(form).serialize());
- // Prevent actual form submission
- e.preventDefault();
- });
- });
- var dataTable;
- $(document).ready(function(){
- // Initialize datatable
- dataTable = $('#empTable').DataTable({
- 'processing': true,
- 'serverSide': true,
- 'serverMethod': 'post',
- 'ajax': {
- 'url':'ajaxfile.php',
- 'data': function(data){
- // Read values
- data.request = 1;
- }
- },
- 'columns': [
- { data: 'emp_name' },
- { data: 'email' },
- { data: 'gender' },
- { data: 'salary' },
- { data: 'city' },
- { data: 'action' },
- ],
- 'columnDefs': [ {
- 'targets': [5], // column index (start from 0)
- 'orderable': false, // set orderable false for selected columns
- }]
- });
- // Check all
- $('#checkall').click(function(){
- if($(this).is(':checked')){
- $('.delete_check').prop('checked', true);
- }else{
- $('.delete_check').prop('checked', false);
- }
A segítséget előre is köszönöm.
Mi lenne, ha
Lépésről lépésre: először legyen meg js-ből a tábla kirakása, aztán legyen ajax adatlekérés, végül variálj a checkbox-okkal.
Nem szabad elfeledkezni arról sem, hogy ha a checkbox-ok a DataTable egyes soraiban vannak, akkor azoknak előbb létre kell jönniük, utána lehet eseménykezelőre feliratkozni.
A második kódban furcsa lenne, ha lenne "checkbox megtartás", mert van "checkall", ezt én logikailag nem tudom összeegyeztetni a megtartással, de lehet, hogy csak én..
Mindenesetre ilyenkor nekem az szokott beválni, ha 0-ról, apró lépésenként megcsinálom magamnak. Az idézett kódokhoz nincs DOM (HTML), így különösen nehéz lenne érdemben hozzászólni szerintem.