2017-07-24 73 views
0

下面您可以看到html代碼,javascript/jquery和PHP。我試圖發送使用AJAX PHP,請求多變量發送到PHP,其中之一是FORMDATA,另一個是從投入等jQuery AJAX將多個變量傳遞給數據

這裏是一些文本或值的HTML代碼:

<div> 
<p>Name:</p> 
<input id="newP_name"></input> 
<p>Product Image</p> 
<input type="file" id="img"></input> 
<p>Description:</p> 
<textarea id="newP_desc"></textarea> 
<button name="submitProductBtn" id="submitProductBtn">Submit</button> 

這裏是我的javascript:

$("#submitProductBtn").click(function(){ 

     var file_data = $('#img').prop('files')[0]; 
     var form_data = new FormData(); 
     form_data.append('file', file_data); 
     $.ajax({ 
      url: 'imgParser.php', 
      dataType: 'text', 
      cache: false, 
      contentType: false, 
      processData: false, 
      data: form_data, name: "John", 
      type: 'POST', 
      success: function (response) { 
       alert(response); 
      }, 
      error: function (response) { 
       alert("ERROR OCCURED"); 
      } 
     }); 
    }); 

正如你可以看到我想要傳遞給「數據:」在FORMDATA(圖像)和第二變量名。

這裏是PHP代碼:

<?php 
if(isset($_FILES["file"]["name"])){ 
    if($_FILES["file"]["error"] == 0){ 
     move_uploaded_file($_FILES["file"]["tmp_name"], "images/".$_FILES["file"]["name"]); 
     echo $_POST["name"]; 
    }else{ 
     echo $_POST["name"]; 
    } 
} 
?> 

我希望它打印 「約翰」,但警報是空白,圖像顯示 - >

enter image description here

任何幫助表示讚賞, 謝謝提前。

編輯:

改變略微jQuery代碼,仍然輸出空的,但是,當我有代碼在PHP註釋(下面的結束標記),它打印它。

這裏是我的新的jQuery代碼:

$("#submitProductBtn").click(function(){ 

     var file_data = $('#img').prop('files')[0]; 
     var form_data = new FormData(); 
     form_data.append('file', file_data); 
     form_data.append('name', "John"); 

     $.ajax({ 
      url: 'imgParser.php', 
      dataType: 'text', 
      cache: false, 
      contentType: false, 
      processData: false, 
      data: form_data, 
      type: 'POST', 
      success: function (response) { 
       alert(response); 
      }, 
      error: function (response) { 
       alert("ERROR OCCURED"); 
      } 
     }); 
    }); 
+0

是您在表單中發佈的HTML嗎? – Musa

+0

請用[alert()'來排除故障。](http://stravid.com/en/stop-the-javascript-alert-madness/),請改用'console.log()'。 –

+0

@Musa沒有html不是它的形式,因爲它顯示,沒有其他東西是圍繞該div –

回答

1

您添加的所有數據字段的表單數據對象,就像你的文件確實

form_data.append('file', file_data); 
form_data.append('name', 'John'); 
+0

發生了什麼?我刪除了我的答案並向上投票。爲什麼這麼奇怪......對不起,如果你有什麼想法可以分享嗎?謝謝 – gaetanoM

+1

我想有人正在投下熱潮 – Musa

+0

試過了,沒有用,也許還有別的東西我錯過了?或者有不同的方式 –

-1

我不知道是什麼form_data也許你可以試試這個,

form_data.append('file', file_data); 
form_data.append('name', 'john'); 

只是通過form_datadata屬性

$.ajax({ 
    ... 
    ... 
    data: form_data