我有2个单独的文件,代码相同。 contact.html和contact.php 我使用contact.html进行ajax调用以加载内容,并使用contact.php发送邮件。但是我不想让人们重定向到contact.php因为页面崩溃了。 (您也可以尝试填写表格并查看我的问题) 我想要的;是否可以在发送按钮的底部提供“消息已成功发送”消息,并且仍然保留在同一页面中,没有重定向?
content / contact.php和content / contact.html代码
<div class="section group">
<!-- Contact Form -->
<div id="contact-form" class="col span_6_of_12">
<h2 class="main-heading">
<span><i class="fa fa-envelope"></i> Contact Me!</span>
</h2>
<?php
if (isset($_REQUEST['email']))
//if "email" is filled out, send email
{
//send email
$email = $_REQUEST['email'] ;
$subject = $_REQUEST['subject'] ;
$message = $_REQUEST['message'] ;
mail("hiamina@asdkasd.com", $subject,
$message, "From:" . $email);
echo "Thank you for using our mail form";
}
?>
<form method="post" action="content/contact.php" id="contactform">
<p>
<label for="name">
<b> Your Name</b>
</label>
<br>
<input type="name" name="name" class="input" placeholder="type here">
</p>
<p>
<label for="email">
<b> Your Email</b>
</label>
<br>
<input type="email" name="email" class="input" placeholder="type here">
</p>
<p>
<label for="message">
<b> Your Message</b>
</label>
<br>
<textarea name="message" cols="60" rows="6" id="textarea"></textarea>
</p>
<input type="submit" id="submit" name="send" value="Send your message" class="send">
</form>
</div>
<!-- /Contact Form -->
<div id="space" class="col span_1_of_12"></div>
<!-- Adress -->
<div id="adress-container" class="col span_5_of_12">
<h3><i class="fa fa-users"></i> Get in touch</h3>
<hr>
<p>Malis do cernantur qui cillum ullamco sed aliqua fore. Quem in ubi illum doctrina, consequat id multos tempor, senserit multos te admodum comprehenderit, an quem lorem o incurreret ut multos comprehenderit fabulas eram voluptate hic</p>
</div>
<!-- /Adress -->
</div>
答案 0 :(得分:4)
您应该使用ajax发布它,这将阻止它更改页面,您仍然可以获取信息。
$(function() {
$('form').submit(function() {
$.ajax({
type: 'POST',
url: 'submit.php',
data: { username: $(this).name.value,
password: $(this).password.value }
});
return false;
});
})
答案 1 :(得分:0)
我在这里看不到你的ajax部分
但每次在邮件和回显之后都可以使用exit
以避免重定向
首先创建一个html文件名email.html
<script>
$(function() {
$('#contactform').submit(function() {
var name = $('#name').val();
var email =$('#email').val();
var value =$('#textarea').val();
$.ajax({
type: 'POST',
url: 'email.php',
data: { name:name ,email:email ,text:value }
});
return false;
});
})
</script>
<form method="post" action="content/contact.php" id="contactform">
<p>
<label for="name">
<b> Your Name</b>
</label>
<br>
<input type="name" id="name" class="input" placeholder="type here">
</p>
<p>
<label for="email">
<b> Your Email</b>
</label>
<br>
<input type="email" id="email" class="input" placeholder="type here">
</p>
<p>
<label for="message">
<b> Your Message</b>
</label>
<br>
<textarea name="message" cols="60" rows="6" id="textarea"></textarea>
</p>
<input type="submit" id="submit" name="send" value="Send your message" class="send">
</form>
然后将此代码保存在其他页面中作为email.php
:
<?php
if (isset($_POST['email']))
//if "email" is filled out, send email
{
//send email
$email = $_REQUEST['email'] ;
$subject = $_REQUEST['subject'] ;
$message = $_REQUEST['message'] ;
mail("hiamina@asdkasd.com", $subject,
$message, "From:" . $email);
echo "Thank you for using our mail form";
exit;
}
?>
完成!
答案 2 :(得分:0)
您有一个表单操作,在content / contact.php中发布数据,您可以通过两种方式执行此操作
如果您发布到上面的页面,那么在完成电子邮件发送脚本后,您可以使用header()或javascript重定向到contact.html页面。您可以在会话中设置消息并在重定向后显示该消息,但为此页面应该能够执行PHP脚本(contact.html)
使用Ajax在提交表单时在content / contact.php中发布数据,并在成功时显示消息。
答案 3 :(得分:0)
你无法阻止使用php表单重新加载页面,你需要像这样使用Ajax
$("#submit").click(function(e){
var emailid= "hiamina@asdkasd.com"
jQuery.post("mails.php", {
email:$("#email").val(),
subject:$("#subject").val(),
message:$("#message").val(),
emailid:emailid
}, function(data, textStatus){
if( data == 1)
{
alert("Mail not sent");
e.preventDefault();
}
else
{
alert("Mail sent");
e.preventDefault();
}
});
});
mails.php
$email = $_POST['email'] ;
$subject = $_POST['subject'] ;
$message = $_POST['message'] ;
$emailid= $_POST['emailid'] ;
if(mail($emailid, $subject, $message, "From:" . $email))
echo "2";
else
echo "1";
也改变了这个
<input type="submit" id="submit" name="send" value="Send your message" class="send">
到
<input type="button" id="submit" name="send" value="Send your message" class="send">