Ajax表单验证Php插入查询

时间:2017-12-01 12:11:25

标签: php jquery mysql ajax twitter-bootstrap

我试图用jquery向数据库添加数据。我的代码在这里,但它不起作用。

使用bootstrap表单,我尝试将输入数据发送到该页面中的特定页面(在这种情况下,adduser.php),我尝试将此值检查到数据库中确定没有相同的数据(我查看电子邮件地址) 你能帮帮我们吗?

<script>
$(document).ready(function(){
    $('#adduser').click(function(){

        var add_name = $('#add_name').val();
        var add_surname = $('#add_surname').val();
        var add_email = $('#add_email').val();
        var add_password = $('#add_password').val();

        if(add_name == '' || add_surname == '' || add_email == '' || add_password == '' ){
            $('#add_user_error').html("<strong class='text-danger'>*** Please enter all details</strong>");
        }else{      

            $.ajax({
                url: "adduser.php",
                method: "post",
                data:{add_name:add_name,add_surname:add_surname,add_email:add_email,add_password:add_password},
                success: function(data){
                    if (data == 1) {
                $('#add_user_error').html("<strong class='text-danger'>This email have in database</strong>");              
            }else{
                $('#add_user_error').html("<strong class='text-success'>Success</strong>"); 
            }

            }               

                }); return false;       
        }
    });
});
</script>


<?php  
include ('setup.php'); //Database connection dbc


if(isset($_POST['adduser'])){

    $add_name = $_POST['add_name'];
    $add_surname = $_POST['add_surname'];
    $add_email = $_POST['add_email'];
    $add_password = $_POST['password'];


$q = "SELECT * FROM users WHERE email = '$add_email'";
$r = mysqli_query($dbc, $q);

$adduser = mysqli_fetch_assoc($r);


if($adduser['email'] !== $add_email){
    $q = "INSERT INTO users (name,surname,email,password) VALUES ('$add_name','$add_surname','$add_email','$add_password')";
    $r = mysqli_query($dbc, $q);    
}
}
?>  

2 个答案:

答案 0 :(得分:4)

也可能有任何其他错误,但我认为你需要从ajax发送adduser 。然后只有$ _POST ['adduser']才为真(现在它是假的,因为它没有设置)

用下面的行替换您的数据行并尝试

data:{add_name:add_name,add_surname:add_surname,add_email:add_email,add_password:add_password,adduser:1}

答案 1 :(得分:0)

在您的ajax代码中使用序列化方法传递表单数据

$.ajax({
        url: "adduser.php",
        method: "post",
        data:$('#yourformid').serialize(),
        /* your remaining code as it is  */