2016-03-25 7 views
0

hier ist über ein JavaScript-Widget DataTables. Ein Beispiel kann here gefunden werden.übertragen ausgewählte Zeile der Tabelle (Javascript DataTables) auf Server

Entschuldigung, ich bin kein JavaScript-Spezialist. Wie kann ich die ausgewählte Zeile (praktisch meine Objekte vom Server) in Form von json-format an den Server zurückübertragen?

ich versuche, tat es mit diesem Ansatz zu tun, aber es funktioniert nicht:

$('#save_btn').click(function() { 
 
     //table.row('.selected').remove().draw(false); 
 
     console.log (table.rows('.selected').data()); 
 
    
 
    
 
     var stringData = table.rows('.selected').data().serialize(); 
 
     $.ajax({ 
 
      url: '${pageContext.request.contextPath}/ajax/storeSelectedContacts', 
 
      data: stringData , 
 
      type: "POST", 
 
      cache: false, 
 
      success: function (savingStatus) { 
 
       alert("success"); 
 
      }, 
 
      error: function (xhr, ajaxOptions, thrownError) { 
 
       alert("error") 
 
      } 
 
     }); 
 
    
 
    });

vielen Dank

Antwort

0

Erstens seine Rückkehr Array von Objekten.

var stringData = table.rows('.selected').data(); 

Zweitens, für convert-Array JSON ...

var aData = table.rows('.selected').data(); 
var sData = JSON.stringify(aData) 

und für Senden an den Server Sie slould dass anzuzeigen, JSON dataType: 'json'

$.ajax({ 
     url: '${pageContext.request.contextPath}/ajax/storeSelectedContacts', 
     data: sData , 
     type: "POST", 
     cache: false, 
     dataType: 'json', 
     success: function (savingStatus) { 
      alert("success"); 
     }, 
     error: function (xhr, ajaxOptions, thrownError) { 
      alert("error") 
     } 
    }); 

}); 
+0

Vielen Dank. Es funktioniert praktisch, aber ein Problem. Wenn ich eine Zeile auswähle, gibt die table.data() nicht nur meine Daten, sondern auch weitere Informationen zurück: '{" 0 ": {" name ":" mustermann "," Nachname ":" Muster "," email " : "[email protected]", "check ed": false}, KONTEXT: [{"oFunktionen": {"bAutoWidth": true, "bDeferRender": false, .........} ' . Ist es möglich, auf der Client-Site nur meine Daten ohne "Kontext" und so weiter zu teilen? –

+0

Um dieses Problem zu lösen, müssen Sie '.get()' zum Array hinzufügen .. check http://stackoverflow.com/questions/16200215/stringify-of-js-object-adds-extra-data – CMedina

Verwandte Themen