2012-01-10 21 views
0

我已經從堆棧的其他地方採取了幾個腳本來創建聯繫表單,當用戶提交時通過電子郵件發送給我。使用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> 

腳本:

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股利並將其傳遞到隱藏的文本區,然後提交給我的電子郵件。但是,它目前僅通過"name""email"字段並將電子郵件的主體留空。

我在這裏錯過了什麼?

編輯:在代碼隱藏textarea上面,值=「MESSAGE」不是「SUBJECT」的一個小錯誤。但是,代碼無法正常工作。

回答

1

Contenteditable內容在提交時不會通過表單傳遞。 但是,它看起來像你正在使用一些JS來獲取可編輯內容div的內容,並將其放入名爲「subject」的textarea中。

因此,它只能通過$_POST['subject']訪問。

此外,你正在做一個onsubmit =「」在HTML和一個在JS文件中提交。我不認爲兩者都可以工作,你會更好地結合這兩者(即只使用JS文件)。

如果沒有啓用JS,它也不會工作,我認爲這是一個更大的問題。

+0

啊,你知道了 - 原來它正在尋找'name =「xyz」'表格的一部分,我愚蠢地認爲它在看'value ='!隊友的歡呼聲。 – Jascination 2012-01-10 10:59:55

相關問題