parsererrorDetails:SyntaxError:意外的输入结束

时间:2015-08-28 10:20:56

标签: javascript php jquery ajax json

我一直试图为我的网页做一个ajax表单。

将信息发送到 register.php 以形成检查流程。 如果确定,则会将其添加到数据库中。

问题是:

第一条记录始终正常运作。但是,如果我尝试将另一条记录添加到数据库中,则会出现 parsererrorDetails : SyntaxError: Unexpected end of input 错误。

如果数据库中已存在当前信息,则将错误消息输出到屏幕。但是,如果我尝试发送另一条记录,则会出现同样的错误。

我认为在提交第一个数据之后我无法获得第二个数据而不是作为JSON返回。

这是我的代码。任何有用的帮助。

服务器端/ register.php

我的 header('Content-type: application/json'); 位于顶部。

try {
    //    local db connection
    $conn = new PDO('mysql:host=localhost;dbname=db_trop@Dubai;charset=utf8','root','mysql');
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    if (isset($_POST)) {
    // CHECK IF PASSWORD ALREADY IN USE
    $objP = clear(strtoupper($_POST['objPass'])); // Get Ajax Data
    // $stmt = $conn->prepare('SELECT Id,PassNumber FROM tblRecords WHERE PassNumber = ?'); 
    // $stmt->execute(array($objP));
    $stmt = $conn->prepare('SELECT Id,PassNumber FROM tblRecords WHERE PassNumber = :passnum');
    $stmt->bindParam(':passnum', $objP);
    $stmt->execute();
    $PassResult = $stmt->fetchAll();
    // (PDO::FETCH_ASSOC)

    if($PassResult) {
        // IF THE PASSWORD FAILS
        $response_array['status'] = 'fail';
        $response_array['message'] = 'Parola Kullanılıyor';
        echo json_encode($response_array);
        die();

    } else {
            // ADD DATA TO DATABASE
        $fTerms = intval($_POST['objTerms']);
        $fNameSurname = clear(strtoupper($_POST['objNameSurname']));
        $fMail = clear($_POST['objEmail']);
        $fGsm = clear(intval($_POST['objGsm']));
        $fAddress = clear(strtoupper($_POST['objAdres']));
        $DateTime = date('d-m-Y h:i:s');

        if($fTerms==1) {
            //             SQL
            $SqlQuery = "INSERT INTO tblRecords(NameSurname, Email, Gsm, Address, PassNumber,DateAdded, IsChecked)
            VALUES (:fNameSurname, :fMail, :fGsm, :fAddress,:objP, :DateTime,:fTerms)";
            //            RECORDS
            $addRecords = $conn->prepare($SqlQuery);
            $addRecords->bindParam(':fNameSurname', $fNameSurname, PDO::PARAM_STR);
            $addRecords->bindParam(':fMail', $fMail, PDO::PARAM_STR);
            $addRecords->bindParam(':fGsm', $fGsm, PDO::PARAM_INT);
            $addRecords->bindParam(':objP', $objP, PDO::PARAM_STR);
            $addRecords->bindParam(':fAddress', $fAddress, PDO::PARAM_STR);
            $addRecords->bindParam(':DateTime', $DateTime, PDO::PARAM_STR);
            $addRecords->bindParam(':fTerms', $fTerms, PDO::PARAM_STR);
            $addRecords->execute();
            //            END OF RECORD PROCESS
            if ($addRecords) {
                $response_array['status'] = 'success';
                $response_array['message'] = 'BRAVO';
                $conn = null; 
            } else {
                $response_array['status'] = 'fail';
                $response_array['message'] = 'OLMADI';
                $conn = null; 
            }

        } else {
            die();
        }

    }

}

Client Side / main.js

$("#register").submit(function (event, request) {
    var password = $(this).find('input[name="objPassword"]').val();
    var namesurname = $(this).find('input[name="objNameSurname"]').val();
    var email = $(this).find('input[name="objEmail"]').val();
    var gsm = $(this).find('input[name="objGsm"]').val();
    var adres = $(this).find('input[name="objAddress"]').val();
    var termsOk = $(this).find('input[name="objAcceptTerms"]').val();
    var formURL = $(this).attr("action");

    var postMessage;
    if (postMessage) {
        postMessage.abort();
    }

    var postData = {"objPass": password, "objNameSurname": namesurname, "objEmail": email, "objGsm": parseInt(gsm), "objAdres": adres, "objTerms": termsOk };
    postMessage = $.post(formURL, postData, function (data) {
        $('#register').trigger("reset");
    })

    .done(function(data) {

        var defaultText = '';

        if(data.status == 'success'){
            $( ".info-row span" ).html(data.message);
            $("#register").find('input[name="objPassword"]').val('');
            $("#register").find('input[name="objNameSurname"]').val('');
            $("#register").find('input[name="objEmail"]').val('');
            $("#register").find('input[name="objGsm"]').val('');
            $("#register").find('input[name="objAddress"]').val('');
            $("#register").find('input[name="objAcceptTerms"]').val('');
            $('input:checkbox').removeAttr('checked');
            $('input').removeClass("error");

            $('input[type=text]').focus(function() {
                defaultText = $(this).val();
                $(this).val('');
                $( ".info-row span" ).html("");
            });

            // $('#register').trigger("reset");
            console.log(data);

        } else if(data.status == 'fail'){
            $( ".info-row span" ).html(data.message);
            $("#register").find('input[name="objPassword"]').val('');
            $("#register").find('input[name="objNameSurname"]').val('');
            $("#register").find('input[name="objEmail"]').val('');
            $("#register").find('input[name="objGsm"]').val('');
            $("#register").find('input[name="objAddress"]').val('');
            $("#register").find('input[name="objAcceptTerms"]').val('');
            $('input:checkbox').removeAttr('checked');
            $('input').removeClass("error");

            $('input[type=text]').focus(function() {
                defaultText = $(this).val();
                $(this).val('');
                $( ".info-row span" ).html("");

            });

            console.log(data);
            // $('#register').trigger("reset");
        }

    }) .fail(function (jqXHR, textStatus, errorThrown) {

        alert(JSON.stringify(textStatus));
        // $( ".info-row span" ).html(textStatus);
        console.error("Error: " + textStatus + "Details : " + errorThrown);
        // console.error("Error: " + textStatus + "Details : " + errorThrown);
    }) .always(function(data) {

        $('#register').trigger("reset");

    });

    event.preventDefault();
});

我想做的是:

用户可以连续输入他们的信息,并在每个表单提交后我想在屏幕上显示错误消息(现在正在工作,但在首次提交后无法正常工作。)

由于

0 个答案:

没有答案