试图弄清楚如何将对象从表datatable插件发送到我的Java Servlet
我已经创建了一个Datatable,我正在使用jeditable插件编辑单元格以返回数据。我可以编辑单元格,但当我点击enter键并将其发送回我的URL Rest端点(我只有一个System.out.println来查看数据)时,我从firebug得到了这个错误试图弄清楚如何将对象从表datatable插件发送到我的Java Servlet,java,javascript,post,datatables,jeditable,Java,Javascript,Post,Datatables,Jeditable,我已经创建了一个Datatable,我正在使用jeditable插件编辑单元格以返回数据。我可以编辑单元格,但当我点击enter键并将其发送回我的URL Rest端点(我只有一个System.out.println来查看数据)时,我从firebug得到了这个错误 columnId 3 columnName daily columnPosition 2 id 24 rowId 0 value 50 “网络错误:415不支持的媒体类型-我的rest端点url” 我的端点需要JS
columnId 3
columnName daily
columnPosition 2
id 24
rowId 0
value 50
“网络错误:415不支持的媒体类型-我的rest端点url”
我的端点需要JSON中的对象,而我的表只发送一些字符串参数。所以我需要把它包起来。
让我发布我的datatable初始化和jeditable init
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'
}
});
我想做的是初始化一个对象并发回我想要的所有数据。ID/串行/每小时(新值)
我对jquery、javascript了解不够,不知道从哪里开始修改
有什么建议吗?编辑您的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更新单元格请求。我得到了错误:Uncaught TypeError:oTable.fnGetPosition不是一个函数/datatable 1.7/jquery editable 2.3.3