Jquery AJAX函数总是返回false

时间:2012-10-24 12:18:17

标签: php jquery ajax

我的JS和PHP文件都正常工作,我遇到的问题是总是说提交错误,即使我看到PHP脚本导致输出“继续”。数据库插入从表单正确工作,计数存储表中的行数。我有什么东西可以忽略吗?

JS

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;​

PHP

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);
}

5 个答案:

答案 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并尝试;)