2012-11-09 12 views
1

我有一个Datatable创建,并且我使用jeditable插件来编辑单元以推回数据。我可以编辑的细胞,但是当我按下回车键,并将其发送回我的网址REST端点(我只是有一个的System.out.println看到的数据),我从萤火虫试图找出如何发送一个对象从jEditable数据表插件到我的Java Servlet

"NetworkError: 415 Unsupported Media Type - my rest endpoint url"

我的终点得到这个错误期望JSON中的Object,jeditable只发送一些字符串参数。所以我需要把它包装起来。 让我发布我的数据表初始化和jeditable初始化。

var computerTable = $("#table_computerTable ").dataTable({ 
      "bProcessing": true, 
      "bServerSide": true, 
      "bInfo":false, 
      "bAutoWidth":false, 
      "bScrollInfinite":true, 
      "sAjaxSource": ApiUrl(), 
      "aoColumns":[  // Maps <th> elements in html to JSON data 
       {"mData": "id"}, 
       {"mData": "description","sClass" : "read_only"}, 
       {"mData": "serial"}, 
       {"mData": "daily"} 
      ], 
      "aoColumnDefs":[ 
       {"sName":"id","bVisible":false, "aTargets": [0]}, 
       {"sWidth": "55%","aTargets": [1]}, 
       {"sName":"serial","bVisible":false, "aTargets": [2]}, 
       {"sName":"daily","aTargets":[3]} 
      ], 
      "fnServerData": function (sSource, aoData, fnCallback) { 
        $.getJSON(sSource, aoData, function (json) { 
         map = {}; 
         map["aaData"] = json; 
         fnCallback(map); 
        }); 
      }, 
      "fnRowCallback": function(nRow, aData, iDisplayIndex){ 
       $(nRow).attr("id",aData["id"]); // Change row ID attribute to match database row id 
       return nRow; 
      } 
     }).makeEditable({ 
      sUpdateURL: getApiUrl() + "cpu/save", 
      sReadOnlyCellClass: "read_only", 
      ajaxoptions:{ 
       dataType: "json", 
       type: 'POST' 
      } 
     }); 

这是我回来的数据,当我发送POST(从萤火虫读)

columnId 3 
columnName daily 
columnPosition 2 
id 24 
rowId 0 
value 50 

我想要做的是初始化一个对象,并发送回所有我想要的数据那。该ID /序列/每小时(新值)

我不知道足够的jQuery,JavaScript知道从哪个开始修改。

有什么建议吗?

回答

3

编辑您的makeEditable这样的:

makeEditable(
{ 
    sUpdateURL: function(value, settings) 
    { 
    var sentObject = {} 
    var rowId = oTable.fnGetPosition(this)[0]; 
    var columnPosition = oTable.fnGetPosition(this)[1]; 
    var columnId = oTable.fnGetPosition(this)[2]; 
    var sColumnTitle = oTable.fnSettings().aoColumns[columnId].sTitle; 
    sentObject["rowid"]= rowId 
    sentObject["columnpos"]= columnPosition 
    sentObject["columnId"]= columnId 
    sentObject["sColumnName"]= sColumnTitle 
    sentObject["valueOfCell"]=value 
    sentObject["Serial"]="serialnumber" 
    sentObject["Hourly"]="somevalue" 
    $.ajax({ 
    type: "POST", 
    url: "url", 
    data: "sentObj="+JSON.stringify(sentObject) 
    }) 
    return value; 
    }, 
    sSuccessResponse: "IGNORE" 
} 
); 

这就像一个自己的更新单元Ajax请求的定制。

+0

我得到了错误:Uncaught TypeError:oTable.fnGetPosition不是函数/ datatable 1.7/jquery可编辑2.3.3 – Salim

相关问题