2016-10-03 3 views
0

Ist es möglich, alle Datensätze durch Aktivieren eines Kontrollkästchens oben auf DataTable abrufen? Ich meine, dass ich eine Checkbox hinzufügen möchte und wenn der Benutzer es überprüft, übergeben Sie einen Parameter (zum Beispiel bool isAll) an den Controller über AJAX und die Datensätze werden nach IsAll Parameter durch Ändern der Suchabfrage erhalten. Ich schaue auf viele verschiedene Abschnitte auf Offical Documentation, aber es scheint nicht, diese Funktion zu haben. Es ist etwas wie unten gezeigt. Irgendeine Idee?Abrufen aller Datensätze nach Kontrollkästchen in jQuery DataTable

enter image description here

Antwort

1

Wenn Ihr HTML sieht wie folgt aus:

<table> 
<thead> 
    <tr> 
     <th><input type="checkbox" onClick="checkAll(this)"></th> 
     <th >x</th> 
     <th >y</th> 
     <th >z</th> 
    </tr> 
</thead> 
<tbody> 
</tbody> 

Ich würde so etwas tun alle 'Kontrollkästchen' überprüfen genannt myCheckBox:

function checkAll(x) { 
    checkboxes = document.getElementsByName('myCheckBox'); 
    for(var i=0, n=checkboxes.length; i<n; i++) { 
    checkboxes[i].checked = x.checked; 
    } 
} 

Dann Wenn Sie das als String an Ihren AJAX senden möchten:

function getCheckedBoxes(chkboxName) { 
    var checkboxes = document.getElementsByName(chkboxName); 
    var checkboxesChecked = []; 
    for (var i=0; i<checkboxes.length; i++) { 
    if (checkboxes[i].checked) { 
     checkboxesChecked.push({"ID":checkboxes[i].value}); 
    } 
    } 
    return checkboxesChecked.length > 0 ? checkboxesChecked : null; 
    } 
    var checkedBoxes = getCheckedBoxes("cluster_checkbox"); 
    var data = JSON.stringify(checkedBoxes); 

Dann in Ihrer AJAX aufrufen, um die var Daten mit dem String:

$.ajax({type : "POST", 
      url : "/new_custCluster.php", 
      data: {'IDs': data}, 
      }).done(function(result) { 
       alert("Success"); 
      }).fail(function() { 
       alert("Failure"); 
      }); 
+0

Vielen Dank, aber es hat nicht funktioniert. Vielleicht ist es besser, es zu vereinfachen, indem Sie nur einen Checkbox-Wert anstelle von Array erhalten. –

+0

Ich bin mir nicht sicher, ob Sie das DataTables-Layout anders als das Ändern von [DataTables Code] ändern können (// cdn.datatables.net/1.10.12/js/jquery.dataTables.min.js) –

+0

Ok, in diesem Fall Ihr Die Antwort ist hilfreich, auch wenn das Problem nicht vollständig gelöst wurde. Voted + –

Verwandte Themen