jQuery验证submitHandler无法在$ .ajax发布表单数据中工作

时间:2018-02-27 16:56:39

标签: php jquery ajax

我正在使用jquery validate插件将数据从表单发送到mysql数据库。验证工作正常,但单击按钮后,数据不会提交到数据库。但没有产生任何响应或错误。我认为错误是在ajax部分。

下面的文件是db_connect.php,它执行.both echo正在运行

if ($scope.userAccount.id)
    appFactory.userAccounts.update({ id: $scope.userAccount.id }, $scope.userAccount).$promise.then(onSuccess).catch(onError);
else
    appFactory.userAccounts.create({ id: null }, $scope.userAccount).$promise.then(onSuccess).catch(onError);

index.html - 显示div错误下面的一些代码,但其中的内容为hi2。我不知道为什么它有内容hi2。我用过echo“hi2”;在db_connect.php [末尾给出的代码]但没有将它返回到ajax。

<?php

echo "hello";
/* Database connection start */
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "upscfpyl_test";
$conn = mysqli_connect($servername, $username, $password, $dbname) or die("Connection failed: " . mysqli_connect_error());
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
echo "hi";
//exit();
}
else{
    echo "hi2";
}
?>       

Ajax部分:

<div id="error"></div>
<form id="signupForm" method="post" action="#">
<input type="submit" class="btn btn-primary" value="Sign Up" id="button1" name="btn-save">
</form>

register.php - 提交到数据库

$.ajax({
    type: 'POST',
    dataType: 'text',
    url: 'js/php/register.php',
    data: {
        name1: name,
        email1: email,
        mobile1: mobile,
        gender1: gender,
        password1: passwords
    },
    beforeSend: function() {
        $("#error").fadeOut();
        document.getElementById("button1").disabled = true; // this works
    },
    success : function(response) {
        if(response==1)
        {
            $("#error").fadeIn(1000, function()
            {
                $("#error").html('<div class="alert alert-danger"> <span class="glyphicon glyphicon-info-sign"></span>   Sorry email already taken !</div>');
                document.getElementById("button1").disabled = false;
            });
        } 
        else if(response=="registered")
        {
            window.location = "dashboard.html";
        } 
        else {
            $("#error").fadeIn(1000, function()
            {
                $("#error").html('<div class="alert alert-danger"><span class="glyphicon glyphicon-info-sign"></span>   '+response+' !</div>');
                document.getElementById("button1").disabled = false;
            });
        }
    }
});

1 个答案:

答案 0 :(得分:2)

您可以打开浏览器控制台查看日志。

如果dataType是JSON,则表示您的服务器正在返回json。但事实并非如此https://api.jquery.com/jQuery.ajax/


请尝试使用此代码进行数据序列化:

$("#your_form_id").submit(function(e){ 
    e.preventDefault(); 
    var datas = $(this).serialize(); 
    $.ajax({

        data: datas,
        // Or this
        data: 'key1=' + value1 + '&key2=' + value2 + '&key3=' + value3,

        // to match your server response
        dataType: "text"

        // Error warning
        .fail(function() {
           alert( "error" );
        })

    });
});

使用表单的验证码,我们可以更好地帮助您