通过ajaxsubmit for contact表单执行php邮件功能,无需重定向到php文件


execute php mail function through ajaxsubmit for contact form without redirecting to php file

function contactForm(){
	function e(e){
		var t=/^([a-zA-Z0-9_.+-])+'@(([a-zA-Z0-9-])+'.)+([a-zA-Z0-9]{2,4})+$/;
		return t.test(e)
	}
	$(".js-contact-form").submit(function(){
		$(this).ajaxSubmit({
			data:{
				email:$(".js-contact-email").text().replace(/('r'n|'n| 'r)/gm,"").replace(/'s+/g," "),
				user_message:$(".js-mail-message").text().replace(/('r'n| 'n|'r)/gm,"").replace(/'s+/g," ")
				},
			beforeSubmit:function(t,n,r){
				var i=$(".js-contact-email"),s=$(".js-contact-name"),o= $(".js-contact-subject"),u=$(".js-contact-brief"),a=1;
					i.removeClass("js-error");s.removeClass("js- error");o.removeClass("js-error");u.removeClass("js-error");
					if(i.text()===i.data("placeholder")){i.addClass ("js-error");a=0}else if(!e(i.text())){i.addClass("js-error");a=0}if(s.text()===s.data ("placeholder")){s.addClass("js-error");a=0}if(o.text()===o.data("placeholder")) {o.addClass("js-error");a=0}if(u.text()===u.data("placeholder")){u.addClass("js- error");a=0}if(!a)return!1},
			success:function(e){
				$(".js-mail-message").addClass("js-hidden");
				$(".js-contact-submit").addClass("js-hidden");
				$(".js-mail-success").removeClass("js-hidden")
			}
		});return!1})
}
<form action="http://naiknikunj.me/theme/6/email.php" name="contactform" id="contactform"  accept-charset="utf-8" class="contact-form js-contact-form" method="post">
					<div class="row">
						<div class="col-md-10 col-md-offset-1">
						<p class="mail-message  js-mail-message">Hi  my name is <span class="contact_name  js-contact-name" data-placeholder="Your Name Goes  Here" contenteditable="true">Your Name Goes Here</span> and i am looking for 
						<span class="contact_subject  js-contact- subject" data-placeholder="website for my existing business" contenteditable="true">website  for my existing business</span>. you can reach me on 
						<span class="contact_email  js-contact- email" data-placeholder="YourEmailId@DomainName.com"  contenteditable="true">YourEmailId@DomainName.com</span>. Here's a quick outline of what  I'm after: 
						<span class="contact_brief  js-contact- brief" data-placeholder="Project Requirement goes Here" contenteditable="true">Project  Requirement goes Here</span>. 
						I look forward to hearing from you.</p>
						<p class="mail-message  js-mail-success   js-hidden">Thank you. We have received your message and will be in touch with you  shortly.</p>
								<button class="btn btn- default js-contact-submit">Send Mail <i class="sendmsg fa fa-location-arrow"></i></button>
						</div>
					</div>
				</form>
现在发生的是输入所有字段后,将显示消息(谢谢。我们已收到您的消息,并将很快与您联系。

)当未输入任何字段时,文本将显示为红色。以上所有的事情都必须按原样进行邮件也应该起作用。假设我在phpurl.php文件中有php邮件函数代码,然后如何留在联系人表单页面上使邮件部分在不将页面重定向到phpurl.php的情况下进行。

为什么不使用类似的东西(假设您已经验证了表单)

$(".js-contact-form").submit(function(e) {
    e.preventDefault();
    $.ajax({
        type:'POST', 
        url: 'php/secure-email.php', 
        data:$('#contactform').serialize(), 
        success: function(response) {
            $(".js-mail-message").addClass("js-hidden");
            $(".js-contact-submit").addClass("js-hidden");
            $(".js-mail-success").removeClass("js-hidden");
        },
        complete:function() {
            $('#contactform').each(function() {
                this.reset();
            });
        }
    });
});

然后在您的php文件中,为您的邮件使用$_POST vars,如果邮件被发送,您只需要echo true

尝试在<iframe>标记而不是"允许脚本",以允许表单提交。。它应该起作用。