2014-01-17 28 views
0

我在我的網站上設置了一個電子郵件表單,現在它使用header('Location:emailConfirmation.html');將用戶發送到感謝頁面。我想嘗試一些其他的東西,並使用javascript替換表單的html。即調用像這樣的功能PHP電子郵件表單響應當前html而不是打開「謝謝」頁面

function emailConfirmed() 
{ 
    $('#email').load('emailConfirmation.html'); 
} 

一些不太侵入性,不離開主頁面。是這樣的可能嗎?

這是我目前的表單代碼。

<form method="POST" name="contactform" action="scripts/contact-form-handler.php"> 
    <p> 
     <label for='name'>Your Name:</label> <br> 
     <input type="text" name="name"> 
    </p> 
    <p> 
     <label for='email'>Email Address:</label> <br> 
     <input type="text" name="email"> <br> 
    </p> 
    <p> 
     <label for='message'>Message:</label> <br> 
     <textarea name="message" maxlength="600" cols="25" rows="6" style="margin: 2px; width: 300px; height: 110px;resize:none;"></textarea> 
    </p> 
    <input type="submit" value="Submit"><br> 
</form> 

<script language="JavaScript"> 
    var frmvalidator = new Validator("contactform"); 
    frmvalidator.addValidation("name","req","Please provide your name"); 
    frmvalidator.addValidation("email","req","Please provide your email"); 
    frmvalidator.addValidation("email","email","Please enter a valid email address"); 
</script> 
+0

使用AJAX,在提交調用PHP頁面,然後用你 – user934902

回答

2

那麼你應該使用$.ajax()send mail一樣,

SCRIPT

$(function(){ 
    $('#submit').on('click',function(){ 
     $.ajax({ 
      url:$('form[name="contactform"]').attr('action'), 
      data:$('form[name="contactform"]').serialize(), 
      type:'POST', 
      success:function(){ 
       $('#email').load('emailConfirmation.html'); 
      } 
     }); 
    }); 
}); 

添加idsubmit button一樣,

<input type="submit" value="Submit" id="submit"><br> 

而且得到在#emailmessage添加div後您的form一樣,

<form ...> 
    .... 
</form> 
<div id="email"></div><!-- Element to get the message afte ajax success callback --> 
+0

這工作完美謝謝! – hOOks7

0

讓id爲一個div =「電子郵件」在你要顯示的頁面謝謝消息

寫如下的成功消息傳遞的條件

<script type='text/javascript'> 
    $(document).ready(function(){ 
    $('#email').load('emailConfirmation.html'); 
    }); 
</script> 
0

如果頁面的主要部分在一個div內(比如說「main」),那麼你可以這樣做:

$('#main').html("Thank you.<br/><br/>Your form has been sent."); 

如果您希望包含更多內容,可以從外部文件加載它,甚至可以將其硬編碼到JavaScript中。

+0

這種做法贏得了感謝替換形式不會加載新頁面,只會將內容替換爲傳遞給html()方法的內容。 – Birrel

0

要載入html文件。使用此代碼完成,我希望這是爲你工作。

$("#email").load("emailConfirmation.html", function() { 
     alert("Load was performed."); 
}); 

請嘗試和More Detail

相關問題