我创建了一个邮件[感谢这个社区的支持]。我从一个有下拉列表的联系表单中获取和发送信息,一切看起来都很好,但问题是我收到了两次相同的邮件,我不知道它有什么问题。我没有太多的PHP或JavaScript技能。
以下是联系表格 -
<div class="contact-form">
<h2>Contact Us</h2>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
<script>
function verify() {
if(document.getElementById("name").value=="" || document.getElementById("email").value=="") {
alert("Please enter a name and an email.");
} else {
alert("Looks good, sending email");
//document.getElementById('ContactForm').submit();
var name=$('#name').val();
var email=$('#email').val();
var message=$('#message').val();
var phone=$('#phone').val();
var law=$('#law').val();
var fine=$('#fine').val();
var formData = "name="+name+"&message="+message+"&phone="+phone+"&law="+law+"&fine="+fine+"&email="+email;
$.ajax({
url : "mail.php",
type: "POST",
data : formData,
success: function(data, textStatus, jqXHR)
{
//data - response from server
alert(data);
},
});
}
}
</script>
<form action="mail.php" method="post" id="ContactForm">
<p>Your Name: * <br>
<input type="text" class="form-bt" value="" size="40" name="name" id="name" required>
</p>
<p>Phone: *<br>
<input type="number" class="form-bt" value="" size="40" name="phone" id="phone" required>
</p>
<p>Email: *<br>
<input type="email" class="form-bt" value="" size="40" name="email" id="email" required>
</p>
<p>Are of Law * <br>
<select name="law" class="form-bt" id="law">
<option value="Business & Commercial" selected>Business & Commercial</option>
<option value="Landlord & Tenant">Landlord & Tenant</option>
<option value="Litigation & Disputes">Litigation & Disputes</option>
<option value="Employment Law">Employment Law</option>
<option value="Wills & Probate">Wills & Probate</option>
<option value="Others">Others</option>
</select>
</p>
<p>Enquiry Details: *<br>
<textarea cols="40" rows="10" class="form-bt" name="message" id="message" required></textarea>
</p>
<p>How Did You Find Us? * <br>
<select name="fine" class="form-bt" id="fine">
<option value="I am a Previous or Existing Client" selected>I am a Previous or Existing Client</option>
<option value="Online Search">Online Search</option>
<option value="Advertisement">Advertisement</option>
<option value="Word of Mouth">Word of Mouth</option>
<option value="Law Society "Find a Solicitor"">Law Society "Find a Solicitor"</option>
<option value="Bar Standards Board">Bar Standards Board</option>
<option value="Other">Other</option>
</select>
</p>
<p>Please Specify: <br>
<input type="text" class="form-bt" value="" size="40" name="specify" id="specify">
</p>
<p>
<input type="submit" id="send" onClick="verify()" value="Submit" class="btton">
</p>
</form>
</div><!-- Contact Form -->
Now, i have created a mail.php files and have included the below codes -
<!-- begin snippet: js hide: false -->
&#13;
一切都很好。我收到了邮件。
注意:我也不想将人们重定向到此网址 - http://www.XXXX.net/law/我知道如何做到这一点?
亲切的问候 DEB答案 0 :(得分:0)
如果验证通过onclick事件传递,您可以通过默认提交按钮提交表单并再次执行请求请求。
解决方案很简单:
将表单提交按钮input type="submit"
更改为input type="button"
由于按钮类型,只会触发onclick事件,因此验证通过时验证()验证并发送邮件。
答案 1 :(得分:0)
带有重定向的AJAX,如:
$.ajax({
url : "mail.php",
type: "POST",
data : formData,
success: function(data, textStatus, jqXHR)
{
//data - response from server
//alert(data);
window.location="http://www.XXXX.net/law/";
},
});
发送邮件功能,如:
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$phone = $_POST['phone'];
$law = $_POST['law'];
$fine = $_POST['fine'];
$formcontent=" From: $name \n Email: $email \n Phone: $phone \n Are of Law: $law \n How Did You Find Us: $fine \n Enquiry Details: $message";
$recipient = "devtest@XXXX.org";
$subject = "Contact Form";
$mailheader = "From: $email \r\n";
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");
echo "Thank You!" ;