php表单操作到不同的页面,然后返回ajax调用不起作用

php表单操作到不同的页面,然后返回ajax调用不起作用,php,ajax,Php,Ajax,情况是这样的: 在第一个php页面上,我有一个简单的表单,其中有一个到php类的操作,该类处理表单验证,然后在电子邮件中发送表单值。根据发送电子邮件或表单验证的成功或失败,我在初始表单页面上显示自定义消息 我对表单使用ajax调用;我遇到的问题是,当我第一次进入表单页面并单击submit按钮时,页面刷新不是异步调用,但第二次可以正常工作;这意味着没有页面刷新 下面是ajax调用代码;我正在使用PHP7和最新的Jquery(3.2.1) /*----------------------------

情况是这样的: 在第一个php页面上,我有一个简单的表单,其中有一个到php类的操作,该类处理表单验证,然后在电子邮件中发送表单值。根据发送电子邮件或表单验证的成功或失败,我在初始表单页面上显示自定义消息

我对表单使用ajax调用;我遇到的问题是,当我第一次进入表单页面并单击submit按钮时,页面刷新不是异步调用,但第二次可以正常工作;这意味着没有页面刷新

下面是ajax调用代码;我正在使用PHP7和最新的Jquery(3.2.1)

/*----------------------------------------------------*/
/*联系方式
------------------------------------------------------*/
$('form[name=contactForm]')。提交(函数(e){
e、 预防默认值();
var hidden=$(“#baseurl”);
var baseUrl=hidden.val();
//AJAX请求
$.ajax({
url:this.action,
类型:this.method,
数据:$(this).serialize(),
beforeSend:函数()
{
$('.image loader').show();
},
成功:功能(数据)
{
var Result=$.trim(data.toLowerCase();
$(“#消息警告”).hide();
$('.image loader').hide();//隐藏加载消息
如果(结果=“确定”)
{
$(“#消息成功”).show();
$(“#消息成功”).stop().fadeOut(6000,“线性”);
}否则
{
$(“#消息成功”).hide();
$('#消息警告').css({'display':'block'});
如果(结果!==“”)
{
$('#消息警告').html(结果);
}否则
{
$(“#消息警告”).html(您的电子邮件尚未发送。

如果此问题再次出现,请发送电子邮件至massimo@mywaydigitalhealth.co.uk.

”; } $(“#消息警告”).show(); //$(“#消息警告”).stop().fadeOut(10000,“线性”); } window.location=baseUrl; 返回false; }, 错误:函数() { //TODO log ERRORSHORN.responseText,其中包含错误消息和堆栈跟踪 $('.image loader').hide();//隐藏加载消息 $(“#消息成功”).hide(); $('#消息警告').css({'display':'block'}); //$('#message warning').html(errorshown.responseText); $(“#消息警告”).html(“尝试发送您的消息时出错。

我们对给您带来的不便深表歉意。

\n\如果此问题再次出现,请发送电子邮件至massimo@mywaydigitalhealth.co.uk.); $(“#消息警告”).show(); //$(“#消息警告”).stop().fadeOut(10000,“线性”); window.location=baseUrl; 返回false; }, }); });
==============================================HTML

<form name="contactForm" id="contactForm" method="post" action="inc/sendEmail.php">
        <fieldset>
            <div class="row">
                <div class="six columns mob-whole">
                    <label for="contactFname">First Name <span class="required">*</span></label>
                    <input name="contactFname" type="text" id="contactFname" placeholder="First Name"   />
                </div>

                <div class="six columns mob-whole">
                    <label for="contactLname">Last Name <span class="required">*</span></label>
                    <input name="contactLname" type="text" id="contactLname" placeholder="Last Name"  />
                </div>
            </div>

            <div class="row">
                <div class="six columns mob-whole">
                    <label for="contactEmail">Email <span class="required">*</span></label>
                    <input name="contactEmail" type="text" id="contactEmail" placeholder="Email" />
                </div>

                <div class="six columns mob-whole">
                    <label for="contactSubject">Subject</label>
                    <input name="contactSubject" type="text" id="contactSubject" placeholder="Subject"  />
                </div>
            </div>

            <div class="row">  <div class="twelve columns">
                    <label for="contactMessage">Message <span class="required">*</span></label>
                    <textarea name="contactMessage" id="contactMessage" placeholder="Your Message" rows="10" cols="50" ></textarea>
                </div>
            </div>

            <div>
                <input type="submit" value="Send Message" class="submit full-width" />
            </div>
        </fieldset> 
    </form> <!-- /contactForm -->

名字*
姓*
电子邮件*
主题
信息*
=====================================PHP类

    <?php

include_once('../config.php');
include_once ('../lib/SwiftMailer/swift_required.php');

if ($_POST)
{
$referer = $_SERVER['HTTP_REFERER'];
$referer .= "#contact";


$FormValidated;
$SwiftMsg;
$IsLocal;
$response = "";
$transport;
$mailer;
$SendFormTo = "xxxxxxxxxxxxxxxxxxxxx";
$SendFormToName = "xxxxxxxxxxx";

$fname;
$lname;
$email;
$subject;
$messageText;
$BodyEMail;

$fname = trim(stripslashes($_POST['contactFname']));
$lname = trim(stripslashes($_POST['contactLname']));
$email = trim(stripslashes($_POST['contactEmail']));
$subject = trim(stripslashes($_POST['contactSubject']));
$messageText = trim(stripslashes($_POST['contactMessage']));

$validator = new FormValidators();

//required
$validator->addValidation("contactFname", "req", "Please fill in your name");
$validator->addValidation("contactLname", "req", "Please fill in your surname");
$validator->addValidation("contactEmail", "req", "Please fill in your Email");
$validator->addValidation("contactSubject", "req", "Please fill in the subject");
$validator->addValidation("contactMessage", "req", "Please fill in your email");

//only alphabet, numbers and spaces allowed
$validator->addValidation("contactFname", "alnum_s", "Please enter only alphanumeric characters fill in your name");
$validator->addValidation("contactLname", "alnum_s", "Please enter only alphanumeric characters in your surname");
$validator->addValidation("contactSubject", "alnum_s", "Please enter only alphanumeric characters in the subject");

//len
$validator->addValidation("contactFname", "minlen=2", "Please enter a name longer than 2 characters");
$validator->addValidation("contactLname", "minlen=2", "Please enter a surname longer than 2 characters");
$validator->addValidation("contactSubject", "minlen=2", "Please enter a subject longer than 2 characters");
$validator->addValidation("contactMessage", "minlen=15", "Please enter a message longer than 15 characters");

//format
$validator->addValidation("contactEmail", "email", "Please enter a valid email address");

$FormValidated = $validator->ValidateForm();

if ($FormValidated)
{
// Set Name
$name = $fname . " " . $lname;

//concatenate the email body message
$BodyEMail = "<h1>MyWay Digital health enquiry form</h1>";
$BodyEMail .= "<p>Enquiry sent from: <strong>" . $name . "</strong></p>";
$BodyEMail .= "<p>Subject: <strong>" . $subject . "</strong></p>";
$BodyEMail .= "<h2>Message</h2>";
$BodyEMail .= "<p>" . $messageText . "</p>";

// Create the Transport
$transport = Swift_SmtpTransport::newInstance('xxxxxx', 465, 'ssl')
->setUsername('xxxxxxxxxxxxxx')
->setPassword('xxxxxxxxxx');

// Create the Mailer using your created Transport
$mailer = Swift_Mailer::newInstance($transport);

// Create a message
$SwiftMsg = Swift_Message::newInstance();

$IsLocal = is_localhost();
if ($IsLocal)
{
$SwiftMsg->setFrom(array('xxxxxxxxxx' => 'MyWay Digital Health'));
}
else
{
$SwiftMsg->setFrom(array('xxxxxxxxxx' => 'MyWay Digital Health'));
}

$SwiftMsg->setSubject($subject);
$SwiftMsg->setFrom(array('xxxxxxxxxxxx' => 'MyWay Digital Health'));
$SwiftMsg->setTo(array($SendFormTo => $SendFormToName));
$SwiftMsg->setBody($BodyEMail, 'text/html');

// Send the message
$response = $mailer->send($SwiftMsg);

if ($response == 1)
{
$response = 'OK';
}
} # end if - no validation error
else
{

$error_hash = $validator->GetErrors();

foreach ($error_hash as $inpname => $inp_err)
{
$response .= "<p>$inp_err</p>";
}
} # end if - there was a validation error  

echo $response;
}
?>


对不起,我不明白是什么问题。因此,首先单击,页面刷新。第二个继续工作好吗?请将html部分显示为是,首先单击,页面刷新。第二,继续工作。我添加了html和php代码不知道为什么,但通过注释out window.location=baseUrl并返回false;它起作用了。但是怎么做呢?如果没有代码,如何进行重定向?
    <?php

include_once('../config.php');
include_once ('../lib/SwiftMailer/swift_required.php');

if ($_POST)
{
$referer = $_SERVER['HTTP_REFERER'];
$referer .= "#contact";


$FormValidated;
$SwiftMsg;
$IsLocal;
$response = "";
$transport;
$mailer;
$SendFormTo = "xxxxxxxxxxxxxxxxxxxxx";
$SendFormToName = "xxxxxxxxxxx";

$fname;
$lname;
$email;
$subject;
$messageText;
$BodyEMail;

$fname = trim(stripslashes($_POST['contactFname']));
$lname = trim(stripslashes($_POST['contactLname']));
$email = trim(stripslashes($_POST['contactEmail']));
$subject = trim(stripslashes($_POST['contactSubject']));
$messageText = trim(stripslashes($_POST['contactMessage']));

$validator = new FormValidators();

//required
$validator->addValidation("contactFname", "req", "Please fill in your name");
$validator->addValidation("contactLname", "req", "Please fill in your surname");
$validator->addValidation("contactEmail", "req", "Please fill in your Email");
$validator->addValidation("contactSubject", "req", "Please fill in the subject");
$validator->addValidation("contactMessage", "req", "Please fill in your email");

//only alphabet, numbers and spaces allowed
$validator->addValidation("contactFname", "alnum_s", "Please enter only alphanumeric characters fill in your name");
$validator->addValidation("contactLname", "alnum_s", "Please enter only alphanumeric characters in your surname");
$validator->addValidation("contactSubject", "alnum_s", "Please enter only alphanumeric characters in the subject");

//len
$validator->addValidation("contactFname", "minlen=2", "Please enter a name longer than 2 characters");
$validator->addValidation("contactLname", "minlen=2", "Please enter a surname longer than 2 characters");
$validator->addValidation("contactSubject", "minlen=2", "Please enter a subject longer than 2 characters");
$validator->addValidation("contactMessage", "minlen=15", "Please enter a message longer than 15 characters");

//format
$validator->addValidation("contactEmail", "email", "Please enter a valid email address");

$FormValidated = $validator->ValidateForm();

if ($FormValidated)
{
// Set Name
$name = $fname . " " . $lname;

//concatenate the email body message
$BodyEMail = "<h1>MyWay Digital health enquiry form</h1>";
$BodyEMail .= "<p>Enquiry sent from: <strong>" . $name . "</strong></p>";
$BodyEMail .= "<p>Subject: <strong>" . $subject . "</strong></p>";
$BodyEMail .= "<h2>Message</h2>";
$BodyEMail .= "<p>" . $messageText . "</p>";

// Create the Transport
$transport = Swift_SmtpTransport::newInstance('xxxxxx', 465, 'ssl')
->setUsername('xxxxxxxxxxxxxx')
->setPassword('xxxxxxxxxx');

// Create the Mailer using your created Transport
$mailer = Swift_Mailer::newInstance($transport);

// Create a message
$SwiftMsg = Swift_Message::newInstance();

$IsLocal = is_localhost();
if ($IsLocal)
{
$SwiftMsg->setFrom(array('xxxxxxxxxx' => 'MyWay Digital Health'));
}
else
{
$SwiftMsg->setFrom(array('xxxxxxxxxx' => 'MyWay Digital Health'));
}

$SwiftMsg->setSubject($subject);
$SwiftMsg->setFrom(array('xxxxxxxxxxxx' => 'MyWay Digital Health'));
$SwiftMsg->setTo(array($SendFormTo => $SendFormToName));
$SwiftMsg->setBody($BodyEMail, 'text/html');

// Send the message
$response = $mailer->send($SwiftMsg);

if ($response == 1)
{
$response = 'OK';
}
} # end if - no validation error
else
{

$error_hash = $validator->GetErrors();

foreach ($error_hash as $inpname => $inp_err)
{
$response .= "<p>$inp_err</p>";
}
} # end if - there was a validation error  

echo $response;
}
?>