私はスタック上の他の場所からいくつかのスクリプトを取って、ユーザが投稿したときに私に電子メールを送る連絡フォームを作成しました。jQuery/Javascriptを使用して電子メールフォームでcontenteditableを使用する
HTML:
<form onsubmit="return getContent()">
<fieldset>
<input name="name" value="NAME" style="max-width:15%" type="text"/>
<input name="email" value="EMAIL" style="max-width: 30%" type="text"/>
<div id="message" contenteditable="true" name="message" value="expanding textarea">HELLO</div>
<textarea id="my-textarea" value="MESSAGE" style="display:none"></textarea>
<input type="submit" style="margin-right:0" value="Submit" />
</fieldset>
</form>
SCRIPTS:
function getContent(){
document.getElementById("my-textarea").value = document.getElementById("message").innerHTML;
}
$('form').submit(function() {
$.ajax({
type: "POST",
url: "email.php",
data: $(this).serialize(),
success: function() {
// Update page with success message
}
});
return false;
});
PHP:
<?php
$recipient = "[email protected]"; //recipient
$Name = ($_POST['name']); //senders name
$email = ($_POST['email']); //senders e-mail adress
$mail_body = ($_POST['message']); //mail body
$header = "From: ". $Name . " <" . $email . ">\r\n"; //optional headerfields
mail($recipient, $subject, $mail_body, $header); //mail command :)
?>
スクリプトが取得する必要contenteditable
divに入力されたコンテンツを非表示のテキストエリアに渡してから、メールに送信します。ただし、現時点では"name"
とのフィールドを通過し、メールの本文は空白のままです。
私はここで何が欠けていますか?
EDIT:上記のコード非表示のテキストエリアで小さなエラーが発生しました。値= "MESSAGE"ではなく "SUBJECT"です。それでもコードは機能しません。
ああ、あなたはそれが 'name =" xyz "'フォームの一部を探していることが判明しました。私は、 'value ='を見ていることをばかげて考えました!歓声メイト。 – Jascination