表单对php页面的异步Ajax调用 休会

表单对php页面的异步Ajax调用 休会,php,ajax,jquery-validate,jqueryform,Php,Ajax,Jquery Validate,Jqueryform,我很抱歉延迟回复,但另一个项目有优先权。 我遵循dimitry的建议,添加了ajax调用。 前端验证,使用已验证的jquery和jquery表单发送ajax 我声明站点页面的管理委托给一个php交换机 如果表单没有问题,它应该通过简单的自定义消息(hello NAME,….MAIL)转到Thank.php并调用form-validation.php,执行phpMailer。 我可以使用window.location.href访问Thanke.php,但数据不会传递到php页面,我不知道如何调用两

我很抱歉延迟回复,但另一个项目有优先权。 我遵循dimitry的建议,添加了ajax调用。 前端验证,使用已验证的jquery和jquery表单发送ajax

我声明站点页面的管理委托给一个php交换机

如果表单没有问题,它应该通过简单的自定义消息(hello NAME,….MAIL)转到Thank.php并调用form-validation.php,执行phpMailer。 我可以使用window.location.href访问Thanke.php,但数据不会传递到php页面,我不知道如何调用两个不同的页面

HTML代码(基本) 我尝试使调用同步,在get中插入两个调用,然后在post中插入,在第一个中插入第二个ajax,但什么都没有



我正在使用phpmailer从表单发送数据,不幸的是,我还必须发送两个文件(简历和求职信),这大大降低了速度(加载页面需要5秒钟以上)

阿鲁巴服务器,
HTTPS,
没有数据库
Windows主机,
Php 7.2可用

使用auto@domainname.ext从表单中输入的地址发送电子邮件

我无法直接访问(既不能访问服务器,也不能访问aruba管理面板),因此无法安装/修改/配置/启用任何内容

有没有一种方法可以使发送异步或其他方式?
我在这里看到了其他答案,但它们不适合我,因为它们计划安装库或更改设置。

如果需要,我可以附加服务器的info.php屏幕。
我几乎没有php方面的经验,也不懂面向对象编程,所以更难


非常感谢。

发送到远程服务器的SMTP根本不适合在页面提交期间进行处理。最好的处理方法是使用本地邮件服务器并提交给它,这将非常快-很可能您已经有了一个。尝试如下设置,看看是否有效:

$mail->isSMTP();
$mail->Port = 25;
$mail->Host = 'localhost';
$mail->SMTPAuth = false;
$mail->SMTPAutoTLS = false;
$mail->SMTPSecure = false;

您可以尝试通过javascript发布数据表单。PHP不是异步的。正如Dmitry所建议的,您可以使用AJAX调用执行请求。如果您更喜欢PHP解决方案,那么您可以调用PHP脚本,但可以使用此链接中的示例提前终止。总之,通过提前终止,您可以在向客户端发送响应后继续处理php代码。但请注意,您将无法得到任何流程是否已完成的确认。很抱歉,这不起作用。返回此错误:SMTP连接()失败。显然,我读了有问题的页面,但不幸的是,我没有从itOK得到任何信息,所以听起来你没有本地邮件服务器-你的ISP提供了吗?你读过他们关于如何从服务器发送电子邮件的文档吗?否则,我建议将消息存储在队列中,并在单独的进程中进行实际发送(例如cron作业),但如果托管提供商限制了您的功能,则设置该任务可能会有困难。也许值得将提供商切换到一个对您没有太多限制的提供商。感谢Syncro,最终我选择了Ajax,在我看来它是最简单、最有效的解决方案。不幸的是服务器不是我的,我不能改变供应商。
submitHandler: function(form) {            
        $.ajax({
            url:  'form_validation.php',
            type: $(form).attr('method'),
            data: $(form).serialize(),
            cache: false,//On dev disable cache. Remove on production
            success: function(response) {
                        alert("Thank you for your comment!");
                        window.location.href = $(form).attr('action');
                    }            
        });
    }
$mail->isSMTP();
$mail->Port = 25;
$mail->Host = 'localhost';
$mail->SMTPAuth = false;
$mail->SMTPAutoTLS = false;
$mail->SMTPSecure = false;