私のフォームは、JavaScript アラートを使用してユーザーと通信します。これは、私が働いている会社で推奨される方法です (php ハンドラー ファイルとの間で常にリダイレクトされるのではなく)。
このため、すべてのフォーム データを jquery のいくつかの簡単な検証に渡し、ajax 経由で php ハンドラーに送信します。これが私がやっている方法の基本的な見方です...
var first_name = $(sender + ' #first_name');
var email = $(sender + ' #email');
var tel = $(sender + ' #telephone');
var comments = $(sender + ' #comments');
$.ajax({
type: 'POST',
url: 'sendmail.php',
data: { first_name: first_name.val(),
email: email.val(),
telephone: tel.val(),
comments: comments.val(),
success: function clearFields() {
first_name.val('');
email.val('');
tel.val('');
comments.val('');
alert('Thank you. We will contact you as soon as possible.');
}
}
});
次のようなフォームにファイル入力フィールドを追加しましたが、アップロードに問題があります。電子メールは正しく送信されますが、ajax がアップロードに使用できるデータを php ファイルに送信しているとは思いません
<input type="file" name="upload" id="upload" />
<script>
var upload = $("#upload");
$.ajax({
type: 'POST',
url: 'sendmail.php',
data: { first_name: first_name.val(),
email: email.val(),
telephone: tel.val(),
upload: upload.val(),
comments: comments.val(),
success: function clearFields() {
first_name.val('');
email.val('');
tel.val('');
upload.val('');
comments.val('');
alert('Thank you. We will contact you as soon as possible.');
}
}
});
</script>
これには多くのオプションが見つかりましたが、これなど、私が見たものはすべて「ハック」に思えます。
これを行う簡単な方法はありますか?