2016-05-01 18 views
0

HTMLフォーム・コード(ローカルホスト/ OEM/foo.htmlという)任意の伝統的な送信ボタン

<form id="formUpload"> 
    <input id="photo" type="file"/> 
</form>` 
<div onclick='formSubmit()'> 
    Upload Photo Now 
</div> 

JS/jQueryのコード(インページ・スクリプト)

<script> 
    $(document).ready(function(e){ 
    $('#formUpload').submit(function(e){ 
    e.preventDefault(); 
    $.ajax({ url:'/oem/response.php', 
     type: 'POST', data: new FormData(this), 
     contentType: false, cache:false, processData: false, 
    success: function(data){ 
     alert("Upload Successfully"); 
    } 
    }); 
    }); 
    }); 

    function formSubmit(){ 
    $('formUpload').submit();` 
    } 
</script> 

PHPコード(ローカルホスト/ OEM/response.php)

$sourcePath = $_FILES['file']['tmp_name']; 
$targetPath = "oem/images/".&_FILE['file']['name']; 
move_uploaded_file($sourcePath,$targetPath 
); 

しかし、私が望むように動作しません。リダイレクト後に空白のページが表示されます。

私の質問:主な問題は何ですか?どのように解決するのですか?

答えて

0

クラシックフォームとajaxを混在させることはできません! 次の2つのオプションがあります。

  1. 使用古典的なフォーム送信と$(「フォーム」)を使用し、あなたが行ったように()を提出。

  2. FormDataでajaxを使用します。 ajax の完了後にページを変更する必要がある場合は、window.location.hrefを使用できます。

例:

1)クラシック

$("button").click(function() { 
    $("form").submit(); // This will upload all fields and images in <input type='file'/> 
}); 

2)アヤックス

FormData formData= new FormData(); 
data.append("image", $("#image-input").prop("files")[0]); 

$.ajax({..., data: formData, ...}); 
+0

オーケーが、 "フォーム" '$()の後に提出)(提出します。 'イベントを起こし、Ajax関数が正常に動作しません –

+0

私はフォームの送信とAjaxを使用することはできません!または1つまたは別の! 1)$( "button")click(function(){$( "#form")。submit();}); OR: 2)$( "button")。(function(){$ .ajax({...});}); –

+0

あなたの仲間に感謝しますが、まだ混乱しています、私の全体のコードを確認できますか? –

関連する問題