我有一个内联编辑的datatable脚本,它运行得很好。问题是ajax没有将数据发送到php。我不知道该怎么做,因为我认为我的代码是正确的。内联正常工作,当我按编辑时,输入就会出现,当我按保存时,它会调用test.php,但它不会发布数据。这是我的js。
JS
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;
}
});
发布于 2017-07-31 10:25:10
在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){
}
});
https://stackoverflow.com/questions/30438187
复制相似问题