为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Jquery 的 PHPMailer 联系表

使用 Jquery 的 PHPMailer 联系表

PHP
白板的微信 2023-07-21 18:11:05
我使用 phpmailer 创建了联系表单。并且,它正在工作并且可以正常发送电子邮件。但是,它确实在 php 文件中重定向,然后显示成功消息。我想在同一个联系表单 html 页面上显示消息。并且,我使用下面的 ajax jquery 来实现这一点。但是,邮件不发送。并在同一表单 html 页面上收到以下消息。文档有问题!我该如何解决这个问题?JS代码:(function ($) {    "use strict";    var form = $('#contact-form'); // contact form    var submit = $('#submit-btn'); // submit button                // form submit event            form.on('submit', function(e) {                e.preventDefault(); // prevent default form submit                $.ajax({                    url: 'php/mail.php', // form action url                    type: 'POST', // form submit method get/post                    dataType: 'html', // request type html/json/xml                    data: form.serialize(), // serialize form data                    beforeSend: function() {                                                submit.attr("disabled", "disabled");                                            var loadingText = '<span role="status" aria-hidden="true" class="spinner-border spinner-border-sm align-self-center mr-2"></span>Sending.....'; // change submit button text                        if (submit.html() !== loadingText) {                            submit.data('original-text', submit.html());                            submit.html(loadingText);                        }                    },                    success: function(data) {                        //$('.alert-dismissible').remove();                        submit.before(data).fadeIn(); // fade in response data                         form.trigger('reset'); // reset form                        submit.html(submit.data('original-text'));// reset submit button text                        submit.removeAttr("disabled", "disabled");                    },                    error: function(e) {                        alert('error');                    }                });            });})(jQuery);
查看完整描述

2 回答

?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

我遇到了同样的问题,我用带有随机名称的表单中的隐藏输入来解决,例如:

<input type="hidden" name="test">

然后在 php 文件中:

if(isset($_POST['test'])) {

工作中,问题的出现是因为form.serialize()new FormData()不使用提交按钮。


查看完整回答
反对 回复 2023-07-21
?
杨魅力

TA贡献1811条经验 获得超6个赞

您必须删除,action="php/mail.php" method="post"因为这是由 jQuery 处理的,您必须添加一个隐藏的输入,例如<input type="hidden" name="iamhidden" />表单,然后将其替换if(isset($_POST['submit']))if(isset($_POST['iamhidden']))



查看完整回答
反对 回复 2023-07-21
  • 2 回答
  • 0 关注
  • 117 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信