我的JS和PHP文件都正常工作,我遇到的问题是总是说提交错误,即使我看到PHP脚本导致输出“继续”。数据库插入从表单正确工作,计数存储表中的行数。我有什么东西可以忽略吗?
var dataString = $("form").serialize();
var msg = '<?php echo $msg; ?>';
$.ajax({
type: "POST",
url: 'submit_form.php',
data: dataString,
datatype: 'html',
error: function() {
alert('Error');
},
success: function(msg) {
if (msg == 'proceed') {
$('#contact_form').html("<div id='message'></div>");
$('#message').html("<h2>Contact Form Submitted!</h2>").append("<p>We will be in touch soon.</p>");
}
else {
$('#contact_form').html("<div id='message'></div>");
$('#message').html("<h2>Error with Submission!</h2>").append("<p>Please Try again.</p>");
}
}
});
return false;
if ($count > 15)
{
$msg = 'error';
echo $msg;
exit();
}
elseif ($stmt = $mysqli->prepare("INSERT INTO Comments (Name, Email, Comment) values (?, ?, ?)"))
{
//do sql logic here
$msg = 'proceed';
echo $msg;
}
else
{
/* Error */
printf("Prepared Statement Error: %s\n", $mysqli->error);
}
答案 0 :(得分:2)
您可能正在输出空格或其他字符以及“继续”响应,这会使成功处理程序中的条件为false。
答案 1 :(得分:0)
var dataString = $("form").serialize();
var msg = '<?php echo $msg; ?>';
$.ajax({
type: "POST",
url: 'submit_form.php',
data: dataString,
dataType: 'html',
error: function() {
alert('Error');
},
success: function(msg) {
if (msg == 'proceed') {
$('#contact_form').html("<div id='message'></div>");
$('#message').html("<h2>Contact Form Submitted!</h2>").append("<p>We will be in touch soon.</p>");
}
else {
$('#contact_form').html("<div id='message'></div>");
$('#message').html("<h2>Error with Submission!</h2>").append("<p>Please Try again.</p>");
}
}
});
return false;
试试这个?
答案 2 :(得分:0)
试试这个:使用trim来清理响应
success: function(msg) {
if ($.trim(msg) == 'proceed') {
$('#contact_form').html("<div id='message'></div>");
$('#message').html("<h2>Contact Form Submitted!</h2>").append("<p>We will be in touch soon.</p>");
}
答案 3 :(得分:0)
我见过的两个最常见的原因是你的ajax总是可以运行错误方法。
dataType=json
如果不是json删除此行
async : true
考虑改变这个
答案 4 :(得分:0)
我有同样的问题,错误是在php而不是ajax。
在submit_form.php的顶部定义$ MySQLi并尝试;)