我遇到联系表单的问题一切正常,除非在将表单添加到数据库后它不会显示成功消息。
流程脚本
$post = (!empty($_POST)) ? true : false;
if($post)
{
include 'db.php';
include 'functions.php';
$name = stripslashes($_POST['name']);
$email = trim($_POST['email']);
$phone = stripslashes($_POST['phone']);
$device = stripslashes($_POST['device']);
$model = stripslashes($_POST['model']);
$subject = stripslashes($_POST['subject']);
$message = stripslashes($_POST['message']);
$error = '';
// Check name
if(!$name)
{
$error .= 'Please enter your name.<br />';
}
// Check email
if(!$email)
{
$error .= 'Please enter an e-mail address.<br />';
}
if($email && !ValidateEmail($email))
{
$error .= 'Please enter a valid e-mail address.<br />';
}
// Check phone number
if(!$phone)
{
$error .= 'Please enter your phone number.<br />';
}
// Check device
if(!$device)
{
$error .= 'Please enter your device manufacturer.<br />';
}
// Check device model
if(!$model)
{
$error .= 'Please enter your device model.<br />';
}
// Check message (length)
if(!$message || strlen($message) < 15)
{
$error .= "Please enter your message. It should have at least 15 characters.<br />";
}
// Get current time stampe
$date = time();
if(!$error)
{
$addDB = "INSERT INTO contactus (`name`,`email`,`phone`,`device`,`model`,`subject`,`message`, `date`, `read`) VALUES ('$name','$email','$phone','$device','$model','$subject','$message','$date', '')";
$result = mysqli_query($con,$addDB) or trigger_error("Query Failed! SQL: $sql - Error: ".mysqli_error(), E_USER_ERROR);
echo 'OK';
} else {
echo '<div class="notification_error">'.$error.'</div>';
}
}
这是jQuery部分
<script type="text/javascript">
$(document).ready(function ()
{ // after loading the DOM
$("#ajax-contacts").submit(function ()
{
// this points to our form
var str = $(this).serialize(); // Serialize the data for the POST-request
$.ajax(
{
type: "POST",
url: 'includes/contact-process.php',
data: str,
success: function (msg)
{
$("#note").ajaxComplete(function (event, request, settings)
{
if (msg == 'OK')
{
result = '<div class="notification_ok">Your message has been sent. Thank you!</div>';
$("#fields").hide();
}
else
{
result = msg;
}
$(this).html(result);
});
}
});
return false;
});
});
</script>
感谢任何帮助,我很高兴。
答案 0 :(得分:1)
放弃这一行:
$("#note").ajaxComplete(function (event, request, settings)
您不需要它,因为您已经在success:
功能中。
出于调试目的,您可以尝试在该麻烦线上方放置一个alert("Test");
来检查它是否显示。
请注意,success
回调已被弃用,您应该使用.done
。有关详细信息,请参阅jQuery API:
您也可以尝试自己做一些调试。例如。 Chrome有一些非常好的开发人员工具,你可以看到很多东西,你甚至可以设置断点并逐步完成代码。很有用。
点击F12
以显示开发人员工具。
进入Settings
:
console
:
只需右键单击该Ajax请求即可触发新的相同请求。通过这种方式,您可以准确地看到浏览器发送的内容以及PHP脚本接收的内容。当然,请求需要GET
来调试传递的变量。