收到两次邮件

Getting Mail Twice

本文关键字:两次      更新时间:2023-09-26

>我创建了一个邮件[感谢这个社区的支持]。我正在从带有下拉列表的联系表单中获取和发送信息,一切看起来都很好,但问题是我两次收到同一封邮件,我不知道其中出了什么问题。我没有太多的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 -->

一切都很好。我正在收到邮件。

注意:我也不想将人们重定向到此URL - http://www.XXXX.net/law/知道如何做到这一点吗?

亲切问候.deb

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!" ;

通过默认的提交按钮提交表单如果验证通过 onclick 事件,则再次执行请求请求。

解决方案很简单:

将表单提交按钮input type="submit"更改为input type="button"

由于按钮类型,只会超过 onclick 事件,因此 verify() 验证并在验证通过时发送邮件。