Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery Datatable内联编辑无法正常工作_Jquery_Ajax_Datatable_Datatables_Jquery Datatables - Fatal编程技术网

Jquery Datatable内联编辑无法正常工作

Jquery 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

我有一个内嵌编辑的datatable脚本,它工作得非常好。问题是ajax没有将数据发送到php。我不知道该怎么办,因为我认为我的代码是正确的。内联正在工作,当我按下edit时会显示输入,当我按下save时会调用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;
            }
        });
函数编辑行(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