2017-02-06 15 views
1

私はほとんど助けが必要です。私はajaxフォームを作成し、そのデータをapi.phpに渡します。私はPHPに正常な値を送信する問題はありません。私は現在、ファイルを送信する際に問題に直面しています。ajaxの他のデータに沿ってphpに画像を送信

HTML

<form id="adding" enctype="multipart/form-data"> 

<input type="file" id="imgInp"> 

<input type="text" id="name"> 

<button type="submit" class="btn btn-default pull-right">Submit</button> 
</form> 

Javascriptを

$('#adding').submit(function(e) { 
    e.preventDefault(); 
    $.ajax({ 
     type: "POST", 
     url: 'api.php?do=add', 
     data: { 
      img: $("#imgInp").val(), 
      name: $("#name").val() 
     }, 
     success: function(data) 
     { 
      if (data === 'KO'){ 
      document.getElementById("error").innerHTML = "Alert";   
      } 
      if (data === 'OK'){ 
      document.getElementById("error").innerHTML = "OK";   
      } 
     } 
    }); 

変数名からのデータはなく、IMGから送ることができます。助けてください。ありがとうございます

答えて

0

フォームデータオブジェクトを使用する必要がありますように私に聞こえます。データ属性では、あなたのAJAX呼び出しを介して、

はFYI:あなたは、これは、すべてのフォームの内容をつかむだろうと、あなたはあなたのPHPのコントローラ上の画像を含むtheformコンテンツの提供を受けることができます。この作業

を取得するためにjqueryのライブラリを持っている必要がありますあなたのPHP側で

$('#adding').submit(function(e) { 
var formData = new FormData($(this)); 
     e.preventDefault(); 
     $.ajax({ 
      type: "POST", 
      url: 'api.php?do=add', 
      data: formData , 
      contentType: false, 
      processData: false, 
      cache: false, 
      success: function(data) 
      { 
       if (data === 'KO'){ 
       document.getElementById("error").innerHTML = "Alert";   
       } 
       if (data === 'OK'){ 
       document.getElementById("error").innerHTML = "OK";   
       } 
      } 
     }); 

<?php 
try{ 
if(isset($_FILES) && $_FILES['tmp_name'] != null){ 
//awesome, we have something here 
//then check for extensions, validate and move upload 
}else{ 
    //no file 
} 

}catch(Exception $ex){ 
    echo($ex->getMessage()); 
} 
?> 
+0

感謝の男、PHPのサイトで、まだいくつかの質問は聞いて。変数は何でしょうか? $ _POST [?array?] – CodersUnite

+0

$ _FILES []配列を使用します。これはそれをつかむだろう。続きを読むhttp://www.w3schools.com/php/php_file_upload.aspこのajax呼び出しを行うと、すべてのフォームの内容が取得されます。次に、$ _FILESを使用することによって、送信されたファイル(画像、pdfなど)を取得します。私は私の答えを更新する – Akintunde007

関連する問題