gpt4 book ai didi

javascript - 在成功的 AJAX 调用和 php echo 的响应后附加数据并添加类

转载 作者:行者123 更新时间:2023-12-02 15:56:52 25 4
gpt4 key购买 nike

我正在尝试向我的 php 文件发送 AJAX 调用,以便在填写联系表单后发送电子邮件。当我只是试图从 php 获取回显响应并将其放入表单上方的 div 中时,我的工作完美,但我想在成功返回后添加一些数据并添加一个类,以使其看起来更好。现在,使用此代码,电子邮件仍然可以发送,但消息或类不会显示。

我做错了什么?如何从 php 获取响应以显示在 contactSuccess div 中,同时附加所有内容并隐藏 contactSuccess div,直到它成功通过?

<script>
$(document).ready(function(){

$('#submit').click(function(){

$.post("contactSend.php", $("#mycontactform").serialize(), function(response) {
//test
$('#contactMessageStatus').append(data);
$('#contactMessageStatus').addClass("contactSuccess");
$('html, body').animate({
scrollTop: $("#contactMessageStatus").offset().top
}, 2000);
//endtest
$('#contactMessageStatus').html(response);
//$('#success').hide('slow');
});
return false;
});
});
</script>

表格

<div id="contactMessageStatus"></div>
<form action="" method="post" id="mycontactform" >
<input type="text" class="inputbar" name="name" placeholder="Full Name" required>
<input type="email" class="inputbar" name="email" placeholder="Email" required>
<input type="message" class="inputbar" name="message" placeholder="Message" required>
<input type="button" value="Send Message" id="submit">
</form>

CSS

#contactSuccess {
border-style: solid !important;
border-width: 1px !important;
background-position: 10px 9px !important;
background-repeat: no-repeat !important;
min-height: 24px !important;
padding: 8px 8px 8px 32px !important;
font-size: 11px !important;
font-weight: bold !important;

border-color: #446423;
background-color: #eff5ea;
background-image: url(success_check.gif);
color: #3d6611;
}

PHP 文件 - 添加此文件以防万一

<?php

// Here we get all the information from the fields sent over by the form.
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];

$to = 'contact@example.com';
$subject = 'SFL Contact Form Submitted';
$message = 'FROM: '.$name. ' ' . ' Email: '.$email. ' ' . 'Message: '.$message;
$headers = 'From: contact@example.com' . "\r\n";

if (filter_var($email, FILTER_VALIDATE_EMAIL)) { // this line checks that we have a valid email address
mail($to, $subject, $message, $headers); //This method sends the mail.
echo "Your email was sent!"; // success message
}else{
echo "Invalid Email, please provide an correct email.";
}
?>

最佳答案

问题很可能出在您的 $.post 响应处理程序中。尝试显示响应之前的其中一行可能会引发异常。我的怀疑是……

$('#contactMessageStatus').append(data);

...但这只是因为我看不到你从哪里获取“数据”。

将响应处理程序中的该代码部分包装在 try/catch block 中,并查看异常是否确实导致了此问题。

关于javascript - 在成功的 AJAX 调用和 php echo 的响应后附加数据并添加类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31499287/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com