2016-09-05 17 views
1

私は、テキスト入力、複数のチェックボックス、および4つの画像を処理するフォームを構築しています。現在、私は各機能を使用してチェックボックスを処理して、チェックボックスのすべての値を配列に格納してから、ajaxを介して送信します。今問題は、私もajaxで画像を送ることができないということです。また、私も画像にアクセスすることはできません。jquery ajaxで複数のデータを送信

コード:

$(document).ready(function() { 
    //alert("this page works"); 
    $('#uploadProperty').on('submit',function (e){ 
     e.preventDefault(); 

     var hname = $('#hname').val(); 
     var location = $('#location').val(); 
     var htype = $('#htype').val(); 
     var rooms = $('#rooms').val(); 
     var price = $('#price').val(); 
     var hdetails = $('#hdetails').val(); 
     var feature = []; 
     $('.feature').each(function() { 
      if($(this).is(":checked")){ 
       feature.push($(this).val()); 
      } 
     }); 
     // if (feature.length == 0) 
     // alert("Select atleast 1 Feature"); 
     // else{ 
     // feature = feature.toString(); 
     // alert(feature); 
     // } 
     var file1 = $('#file4').val(); 
     //alert(file1); 
     $.ajax({ 
      url  : 'core/upload.php', 
      type : 'POST', 
      data : new FormData(), 
      contentType : false, 
      processData : false, 
      success : function (ep){ 
       alert(ep); 
      } 
     }); 

    }); 
}); 

答えて

1

あなたが最初のAJAX(例:http://hayageek.com/docs/jquery-upload-file.php)を経由して画像をアップロードする必要があり、フォームフィールドのための別のAJAXを行った後。しかし、Propertyと画像の間にIDリンクが必要です。あなたは空のレコードを追加し、mysql_insert_idを覚えてフォームフィールドを更新し、画像を挿入したり更新したりすることができます。

+0

この回答も大好きですが、ダブルアヤックスリクエストを使用しても問題はありませんか?ただ尋ねる? – dapo

0

FormDataオブジェクトを埋めたいと思っています。現在は空です。

formData.append('myFile[]', myFileFirst); 
    formData.append('myFile[]', myFileSecond); 

はここでそれを確認します:Uploading multiple files using formData()

var $fileField = $('#fileField'); 
    var myFile = $fileField.get(0).files[0]; 
    formData.append('myFile', myFile); 

すると、あなたが適切に名前を設定する必要がありmultiplieファイルを追加する:

var formData = new FormData(); 
    var $myField = $('#myField'); 
    formData.append('myField', $myField.val()); 

は、ファイルを追加するには: あなたはappendメソッドを使用することができます

また、フォームデータ全体をコンストラクターで取得することもできますr:

var form = $('form').get(0); 
    var formData = new FormData(form); 
+0

この回答はありがたいですが、あなたの提案があれば、データベーステーブルの特定のフィールドに挿入できるように、PHPの各フィールドをどのように取得すればよいですか? – dapo

+0

通常と同じです。 $ _POSTと$ _FILESのスーパーグローバルを使用しています。最後に、例#3、foreachを使用してマルチプレイファイルのアップロードを処理する方法を説明します。http://php.net/manual/en/features.file-upload.post-method.php –

+0

最終的に働く...ありがとうございます..私は今、メソッドを追加することで必要なすべてのデータを送信できます。 – dapo

関連する問題