2016-04-11 12 views
-1

zu bekommen, ich bin fitghting mit dieser dem ganzen Wochenende, so hoffe ich, dass hier kann ich die Antwort finden:Wie ausgewählte Werte von Datatable

I http://datatables.net/examples/server_side/select_rows.html mit Anrufen auf der Serverseite mit json bin usising aber ich kann Die ausgewählten Elemente aus der Datentabelle nicht erhalten, um sie in einer Eingabe verborgen (um Struts Aktionen für Back-End-Prozess zu durchlaufen), so dass die Auswahl der Daten funktioniert, aber ich kann nicht in der DataTable-API finden, wie zu bekommen die Werte der ausgewählten Zeilen einige, wie zu tun:

$("#myHiddenValues").val(datatableSelectedValues); 

Wo die var datatableSelectedValues ​​ist das Array mit dem rowsId (oder einigen anderen Objekten) mit th e Daten, die ich brauche,

Thanks :)

+0

https://datatables.net/reference/api/row() .data() – Andreas

+0

gut mit: console.log ("ausgewählt:" + table.rows ({ausgewählt: true}) .data()) ; In der on (click) -Methode der Tabelle ist das Ergebnis der Konsole: selected: [object Object] Also lautet die Frage nun: Wie konvertiert man das [object Object] in Werte, die ich verwenden kann? –

+1

Sie müssen das Array von Objekten iterieren, überprüfen Sie dieses Beispiel https://jsfiddle.net/cmedina/7kfmyw6x/40/ – CMedina

Antwort

2

table.rows({selected: true}).data()) gibt ein Array von Objekten, die Sie den Zugriff auf Objekte ausgewählt werden, müssen sie durch den Index iterieren und zugreifen. Zum Beispiel, wenn Sie zeigen müssen name, position und office:

HTML CODE

<table id="example" class="display DataTable" cellspacing="0" width="100%"> 
<thead> 
    <tr> 
     <th>Name</th> 
     <th>Position</th> 
     <th>Office</th> 
     <th>Age</th> 
     <th>Start date</th> 
     <th>Salary</th> 
    </tr> 
</thead> 

<tbody> 
    <tr> 
     <td>Tiger Nixon</td> 
     <td>System Architect</td> 
     <td>Edinburgh</td> 
     <td>61</td> 
     <td>2011/04/25</td> 
     <td>$320,800</td> 
    </tr> 
</tbody> 

JS CODE

$(document).ready(function() { 
var oTable = $('#example').DataTable(); 

$('#example tbody').on('click', 'tr', function() { 
    $(this).toggleClass('selected'); 
    var pos = oTable.row(this).index(); 
    var row = oTable.row(pos).data(); 
    console.log(row); 
}); 

$('#button').click(function() { 
    var oData = oTable.rows('.selected').data(); 

    for (var i=0; i < oData.length ;i++){ 
     alert("Name: " + oData[i][0] + " Position: " + oData[i][1] + " Office: " + oData[i][2]); 
    } 

}); 
}); 

Ergebnis: https://jsfiddle.net/cmedina/7kfmyw6x/40/

Verwandte Themen