想要在使用AJAX提交提交按钮时运行PHP查询

时间:2018-06-13 05:33:24

标签: php ajax

如果提交了" addUser" 的按钮名称,我想运行insert.php查询我不知道如何通过 addUser name参数使用AJAX到insert.php文件,检查是否提交了按钮。 如果我删除 if insert.php文件中的语句,这会将用户插入数据库,但如果直接访问insert.php,则在表中插入空记录 如果我直接访问insert.php,我想阻止在表中输入空记录。

的index.html

<form method="post" id="addForm">
Username :<input type="text" name="username" id="userName" />
Passkey :<input type="password" name="passkey" id="passKey"/>
<br/>
<input type="submit" name="addUser" id="submitBtn" value="Inser New User"/>
</form>

<script>
    $("#addForm").submit(function(e){
        let userNameZ = $("#userName").val();
        let passKeyZ = $("#passKey").val();

          $.ajax({
            url:'insert.php',
            type:'POST',
            data: {userName:userNameZ,passKey:passKeyZ},
            success: function(resp) {
               if(resp == "inserted") {
                   $("#addForm").trigger("reset");
                    alert("New user inserted");
               } else {
                    alert("Something went wrong");
               }
            }
         });
    });
</script>

insert.php

<?php 
$conn = new PDO("mysql:host=localhost;dbname=test", "root", "");
if(isset($_POST['addUser'])){
    $userName = trim($_POST['userName']);
    $passKey = trim($_POST['passKey']);
        $query = "INSERT INTO users (username,passkey) VALUES (:userName,:passKey)";
        $stmt = $conn->prepare($query);
        $stmt->execute(array(':userName'=>$userName, ':passKey'=>$passKey));

    if($stmt) {
        echo "inserted";
    } else {
        echo "not inserted";
    }
}

?>

1 个答案:

答案 0 :(得分:1)

更改此if(isset($_POST['addUser'])){if(isset($_POST['userName']) && isset($_POST['passKey'])){

或者在ajax中,改变

data: {userName:userNameZ,passKey:passKeyZ,addUser:1}, 注意: ,addUser:1

为评论添加答案

  

如果我要提交超过10个值

,该怎么办?

您可以使用$("#addForm").serialize()并直接传递给数据。喜欢 data: $("#addForm").serialize(),