Jquery Datatable内联编辑无法正常工作
我有一个内嵌编辑的datatable脚本,它工作得非常好。问题是ajax没有将数据发送到php。我不知道该怎么办,因为我认为我的代码是正确的。内联正在工作,当我按下edit时会显示输入,当我按下save时会调用test.php,但不会发布数据。这是我的js JSJquery Datatable内联编辑无法正常工作,jquery,ajax,datatable,datatables,jquery-datatables,Jquery,Ajax,Datatable,Datatables,Jquery Datatables,我有一个内嵌编辑的datatable脚本,它工作得非常好。问题是ajax没有将数据发送到php。我不知道该怎么办,因为我认为我的代码是正确的。内联正在工作,当我按下edit时会显示输入,当我按下save时会调用test.php,但不会发布数据。这是我的js JS function editRow(oTable, nRow) { var aData = oTable.fnGetData(nRow); var jqTds = $('>td', n
function editRow(oTable, nRow) {
var aData = oTable.fnGetData(nRow);
var jqTds = $('>td', nRow);
jqTds[0].innerHTML = '<input type="text" class="form-control input-small" id="nume" value="' + aData[0] + '">';
jqTds[1].innerHTML = '<input type="text" class="form-control input-small" id="prenume" value="' + aData[1] + '">';
jqTds[2].innerHTML = '<input type="text" class="form-control input-small" value="' + aData[2] + '">';
jqTds[3].innerHTML = '<input type="text" class="form-control input-small" value="' + aData[3] + '">';
jqTds[4].innerHTML = '<input type="text" class="form-control input-small" value="' + aData[4] + '">';
jqTds[5].innerHTML = '<input type="text" class="form-control input-small" value="' + aData[5] + '">';
jqTds[6].innerHTML = '<input type="text" class="form-control input-small" value="' + aData[6] + '">';
jqTds[7].innerHTML = '<input type="text" class="form-control input-small" value="' + aData[7] + '">';
jqTds[8].innerHTML = '<a class="edit" href="">Save</a> <a class="cancel" href="">Cancel</a>';
}
function saveRow(oTable, nRow) {
var jqInputs = $('input', nRow);
oTable.fnUpdate(jqInputs[0].value, nRow, 0, false);
oTable.fnUpdate(jqInputs[1].value, nRow, 1, false);
oTable.fnUpdate(jqInputs[2].value, nRow, 2, false);
oTable.fnUpdate(jqInputs[3].value, nRow, 3, false);
oTable.fnUpdate(jqInputs[4].value, nRow, 4, false);
oTable.fnUpdate(jqInputs[5].value, nRow, 5, false);
oTable.fnUpdate(jqInputs[6].value, nRow, 6, false);
oTable.fnUpdate(jqInputs[7].value, nRow, 7, false);
oTable.fnUpdate('<a class="edit" href="">Edit</a>', nRow, 8, false);
oTable.fnDraw();
}
table.on('click', '.edit', function (e) {
e.preventDefault();
/* Get the row as a parent of the link that was clicked on */
var nRow = $(this).parents('tr')[0];
if (nEditing !== null && nEditing != nRow) {
/* Currently editing - but not this row - restore the old before continuing to edit mode */
restoreRow(oTable, nEditing);
editRow(oTable, nRow);
nEditing = nRow;
} else if (nEditing == nRow && this.innerHTML == "Save") {
/* Editing this row and want to save it */
saveRow(oTable, nEditing);
nEditing = null;
$.ajax({
type: 'POST',
url: 'test.php',
data: {num: $('#nume').val()},
success: function(data)
{
$("#content").html(data);
console.log(data);
}
});
} else {
/* No edit in progress - let's start one */
editRow(oTable, nRow);
nEditing = nRow;
}
});
函数编辑行(oTable,nRow){
var aData=oTable.fnGetData(nRow);
var jqTds=$('>td',nRow);
jqTds[0]。innerHTML='';
jqTds[1]。innerHTML='';
jqTds[2]。innerHTML='';
jqTds[3].innerHTML='';
jqTds[4].innerHTML='';
jqTds[5].innerHTML='';
jqTds[6]。innerHTML='';
jqTds[7].innerHTML='';
jqTds[8].innerHTML='';
}
函数存储行(oTable,nRow){
var jqInputs=$('input',nRow);
oTable.fnUpdate(jqInputs[0].value,nRow,0,false);
fnUpdate(jqInputs[1].value,nRow,1,false);
fnUpdate(jqInputs[2].value,nRow,2,false);
fnUpdate(jqInputs[3].value,nRow,3,false);
fnUpdate(jqInputs[4].value,nRow,4,false);
fnUpdate(jqInputs[5].value,nRow,5,false);
fnUpdate(jqInputs[6].value,nRow,6,false);
fnUpdate(jqInputs[7].value,nRow,7,false);
oTable.fnUpdate(“”,nRow,8,false);
oTable.fnDraw();
}
表.on('click','edit',函数(e){
e、 预防默认值();
/*获取该行作为所单击链接的父级*/
var nRow=$(this.parents('tr')[0];
if(nEditing!==null&&nEditing!=nRow){
/*当前正在编辑-但不是此行-在继续编辑模式之前还原旧的*/
恢复(可旋转、可旋转);
编辑行(可旋转,nRow);
nEditing=nRow;
}else if(nEditing==nRow&&this.innerHTML==Save){
/*正在编辑此行并希望保存它*/
存储行(可旋转、可编辑);
nEditing=null;
$.ajax({
键入:“POST”,
url:'test.php',
数据:{num:$('#nume').val()},
成功:功能(数据)
{
$(“#content”).html(数据);
控制台日志(数据);
}
});
}否则{
/*没有正在进行的编辑-让我们开始一个*/
编辑行(可旋转,nRow);
nEditing=nRow;
}
});
在ajax调用之前试试这个,它应该可以工作
var data = {};
$.each(jqInputs, function( index, val ) {
// data.push(val.value);
data[val.id] = val.value;
});
// console.log(data);
$.ajax({
url: 'controller/ajax/bars/update_bar_timing',
type: "POST",
data: {'jqInputs':data},
success: function(result){
}
});
检查元素以查看在使用datatables呈现后实际生成的结构。。。另外,这不是一个一般性的问题。试着制作一个feedle以获得更好的帮助。结构很好,这是我按edit后生成的html