如果提交了" 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";
}
}
?>
答案 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(),