【问题标题】:Ajax to PHP form submission. Keep getting "parsererror"Ajax 到 PHP 表单提交。不断收到“parsererror”
【发布时间】:2010-12-25 20:26:02
【问题描述】:

ajaxSubmit.js:

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

    $('#waiting').show(500);
    $('#reg').hide(0);
    $('#message').hide(0);

    $.ajax({
        type : 'POST',
        url : 'post.php',
        dataType : 'json',
        data: {
            login : $('input#login').val(),
            pass : $('input#pass').val(),
            pass1 : $('input#pass1').val()
        },
        success : function(data){
            $('#waiting').hide(500);
            $('#message').removeClass().addClass((data.error === true) ? 'error' : 'success')
                .text(data.msg).show(500);
            if (data.error === true)
                $('#reg').show(500);
        },
        error : function(XMLHttpRequest, textStatus, errorThrown) {
            $('#waiting').hide(500);
            $('#message').removeClass().addClass('error')
                .text(textStatus).show(500);
            $('#reg').show(500);
        }
    });

    return false;
});

});

HTML 表单:

   <div id="message" style="display: none;">

        </div>
        <div id="waiting" style="display: none;">
            Please wait<br />
            <img src="images/ajax-loader.gif" title="Loader" alt="Loader" />
        <br />
        </div>
  <form id="reg" class="form with-margin" name="reg"  method="post" action="">
            <br />
            <p class="inline-small-label">
                <label for="login"><span class="big">Email</span></label>
                <input type="text"  name="login" id="login" value="">
            </p>
            <p class="inline-small-label">
                <label for="pass"><span class="big">Password</span></label>
                <input type="password" name="pass" id="pass"  value="">
            </p>
            <p class="inline-small-label">
                <label for="pass1"><span class="big">Password Again</span></label>
                <input type="password" name="pass" id="pass1"  value="">
            </p>

            <div align="center"><button type="submit"  name="submit" id="submit" >Register</button></div>

        </form>

    <script type="text/javascript" src="js/ajaxSubmit.js"></script>

post.php:

    <?php

sleep(3);
$login = $_POST['login'];
$pass = $_POST['pass'];
$pass1 = $_POST['pass1'];
$login = mysql_real_escape_string($login);
$pass = mysql_real_escape_string($pass);
$pass1 = mysql_real_escape_string($pass1);



if (empty($login)) {
    $return['error'] = true;
    $return['msg'] = 'You did not enter you email.';
}
else if (empty($pass)) {
    $return['error'] = true;
    $return['msg'] = 'You did not enter you password.';
}
else if ($test == false) {
    $return['error'] = true;
    $return['msg'] = 'Please enter a correct email. This will be verified';
} 
else if (empty($pass)) {
    $return['error'] = true;
    $return['msg'] = 'You did not enter you password twice.';
}
else if ($pass != $pass1) {
    $return['error'] = true;
    $return['msg'] = 'Your passwords dont match.';
}

else {
    $return['error'] = false;
    $return['msg'] = 'Thanks! Please check your email for the verification code!';
}

echo json_encode($return);


?>

任何想法为什么我不断收到解析器错误?

【问题讨论】:

  • 在哪里你得到 what 错误到底是什么?
  • 来自 ajaxsubmit.js 的 .text(textStatus).show(500);正在给出“解析器错误”
  • 很高兴看到这个问题得到解决;但请在将来引用错误时,始终引用确切的消息和行。没有它,通常无法分辨出哪里出了问题。

标签: php ajax parse-error


【解决方案1】:

您有一个未定义的 $test 变量 else if ($test == false)

我建议如果您通过 ajax 解析错误,您只需手动加载 .php 文件,然后 php 将指向您发生错误的行。

【讨论】:

  • 感谢您的回复。我只是删除了一些代码,因为我认为这是不必要的,但 $test 已定义。它是我从这里提取的电子邮件验证脚本。 linuxjournal.com/article/9585?page=0,3 所以解析器错误可能意味着 php 问题而不仅仅是 json/ajax 问题?
  • 更新:我是个白痴,非常感谢。 mysql escape 需要访问 sql 数据库,所以我需要包含 config.php 文件。再次感谢!
  • 如果您在浏览器中自行加载 php 页面,您会在 php 页面上收到任何错误吗?还是只有在提交表单时才会出现错误?我对我的 ajax 有点生疏了,但是如果 ajax 从 PHP 页面返回结果并且 PHP 页面中有解析错误,那么您将从 php 页面收到解析错误文本,而不是您期望的输出。
猜你喜欢
  • 2014-02-14
  • 1970-01-01
  • 1970-01-01
  • 2012-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多