两次邮件

时间:2016-01-27 06:27:43

标签: javascript php email

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

一切都很好。我收到了邮件。

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

亲切的问候 DEB

2 个答案:

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