数据表内联编辑文件上传

时间:2016-07-13 10:55:39

标签: jquery ajax datatables

我有一个内联数据表编辑,我无法使其与图像上传一起工作。我不知道如何通过ajax将图像传递给php。我尝试了不同的方法,但似乎我不能或不知道如何将文件传递给PHP。这是我的ajax代码。 jqInputs [2]它的文件输入。

function addRow(oTable, nRow) {
            var jqInputs = $('input', nRow);
            var jqInputss = $(':selected', nRow);

            var path=jqInputs[2].value;
            var file = path.match(/\\([^\\]+)$/)[1];

            oTable.fnUpdate(jqInputs[0].value, nRow, 0, false);
            oTable.fnUpdate(jqInputs[1].value, nRow, 1, false);
            oTable.fnUpdate(file, nRow, 2, false);
           oTable.fnUpdate(jqInputs[3].value, nRow, 3, false);
            oTable.fnUpdate('<a class="edit" href="">Edit</a> <a class="delete" href="">Delete</a>', nRow, 4, false);
            var id = getUrlParameter('id');
             $.ajax({
                type: 'POST',
                url: 'app/producatori_add.php?id=' + id,
                data: {
                    id: jqInputs[0].value,
                    nume: jqInputs[1].value,
                    logo: file,

                },
                mimeType: "multipart/form-data",
                contentType: false,
                cache: false,
                processData: false,
                success: function(data)
                {

                    $("#content").html(data);

                }
            });
            oTable.fnDraw();
        }

1 个答案:

答案 0 :(得分:0)

如果其他人有内联数据表上传的问题,我设法让它工作。我使用FormData()并将img发送到php

function addRow(oTable, nRow) {

            var jqInputs = $('input', nRow);
            var jqInputss = $(':selected', nRow);


             var formData = new FormData();

            formData.append('name', jqInputs[1].value);
            formData.append('file', $('input[type=file]')[0].files[0]); 


            oTable.fnUpdate(jqInputs[0].value, nRow, 0, false);
            oTable.fnUpdate(jqInputs[1].value, nRow, 1, false); 

           oTable.fnUpdate(jqInputs[3].value, nRow, 3, false);
            oTable.fnUpdate('<a class="edit" href="">Edit</a> <a class="delete" href="">Delete</a>', nRow, 4, false);

             $.ajax({
                type: 'POST',
                url: 'app/producatori_add.php',
                data: formData,
                contentType: false,
                processData: false,             

                success: function(data)
                {

                    $("#content").html(data);

                }
            });
            oTable.fnDraw();
        }