2016-07-13 128 views
0

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

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

你不能用这种方法做ajax文件上传,当然不是一个参数。你必须单独做这件事,试试谷歌网上的很多教程之一,谷歌的'ajax上传iframe或'ajax上传filereader或类似的。 – davidkonrad

回答

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(); 
     }