2013-07-21 95 views
0

我想在提交聯繫表單後追加一些項目。不幸的是,我不知道如何告訴它要附加項目的文件。這是完整的代碼。有人能夠幫助嗎?在表單上添加提交

<?php 
$field_name = $_POST['name']; 
$field_email = $_POST['email']; 
$field_message = $_POST['message']; 

$mail_to = '[email protected]'; 
$subject = 'Support Request'; 

$body_message = 'From: '.$field_name."\n"; 
$body_message .= 'Email: '.$field_email."\n"; 
$body_message .= 'Message: '.$field_message; 

$headers = 'From: '.$field_email."\r\n"; 
$headers .= 'Reply-To: '.$field_email."\r\n"; 

$mail_status = mail($mail_to, $subject, $body_message, $headers); 

if ($mail_status) { ?> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      $("#submit").append("<p class='success'>Thanks! Your email has been sent.</p>"); 
     }); 
    </script> 
<?php 
} 
else { ?> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      $("#submit").append("<p class='error'>Sorry, something has gone wrong.</p>"); 
     }); 
    </script> 
<?php 
} 
?> 
+1

我解決不了你的問題,但它遠遠更好地使用服務器端驗證/檢查,而不是使用Javascript。 Javascript可以被禁用。 –

+0

@Fred謝謝。我會看看,而不是:) –

+0

「我不知道如何告訴它什麼文件附加項目。」這沒有什麼意義。它只能附加到代碼運行的文檔上。 – j08691

回答

0

工作演示http://jsfiddle.net/NYac5/

$(document).ready(function() { 
    $("#submit").after("<p class='error'>Sorry, something has gone wrong.</p>"); 
}); 
+0

爲什麼'.after()'比'.append()'更好? – j08691

+0

他正在嘗試添加Submit按鈕中的段落,這是不可能的。所以我用了之後提交按鈕放置了這個段落之後。 append可以用於包含元素的div,span,p等元素。 –

+1

你怎麼知道'#submit'是他沒有列出他的HTML時的按鈕? – j08691

0

這部分代碼是混合PHP,HTML和Javascript - 它不會像這樣工作。

if ($mail_status) { ?> 
    <script type="text/javascript"> 
    . 
    . 
    . 
    </script> 
<?php 

你需要做兩件事之一。或者發送一個帶有郵件狀態的新文檔,或者發回一個回覆給Ajax調用的響應(如果您已經這樣做了)

E.g.

if ($mailStatus) { 
?> 
<!doctype html><html><head></head><body> 
    <p class='success'>Thanks! Your email has been sent.</p> 
</body></html> 
<?php } else { ?> 
<!doctype html><html><head></head><body> 
    <p class='failure'>Sorry! Your mail couldn't be sent</p> 
</body></html> 
<?php } 

......或者......

if ($mailStatus) { 
    header("Content-type: application/json"); 
    echo '{"errcode":"0","errmsg":"Success - your message was sent"}' 
} else { 
    header("Content-type: application/json"); 
    echo '{"errcode":"99","errmsg":"Sorry - your message couldn't be sent."}' 
<?php } 
+0

混合爲什麼不起作用? – j08691

+0

您構建代碼的方式,表單已提交以便發送郵件。有條件的結果是你發出的只是一個小的腳本,它會在提交後向表單添加一條消息。它已經被提交 - 這就是爲什麼你的代碼正在運行。提交發生後,您無法將更多HTML發送到頁面。無論是從新頁面開始,還是使用AJAX調用來發送數據並對響應做出反應而無需重新加載。 – 2013-07-21 03:50:51

+0

你怎麼知道他沒有回到同一頁面? – j08691