不确定我的处理是否正确,但基本上我是在尝试使用模态编辑表格中的一行。到目前为止,我有 3 个类,它们是 createUser.php,它具有表并处理检索行并将数据传递给 getuser.php 的请求。这显示模态,现在我正在尝试从模态表单中检索值并相应地更新数据库。这就是 getuser.php
在 atm 中的样子:
<script type="text/javascript">
$(document).ready(function(){
$("#edit-user").submit(function(e){
e.preventDefault();
var uid = $('input[name="userid"]').val();
var username = $('input[name="username-update"]').val();
var password = $('input[name="password-update"]').val();
var role = $('input[name="role-update"]').val();
$.ajax({
url: 'updateUser.php',
type: 'POST',
data: {
id : uid,
username: username,
password: password,
role: role
},
dataType: 'html'
})
.done(function(data){
console.log(data);
$('#update-username').html(data.username);
$('#update-password').html(data.password);
$('#update-role').html(data.role);
})
});
</script>
<?php
require_once 'database.php';
if (isset($_REQUEST['id'])) {
$id = intval($_REQUEST['id']);
$query = "SELECT * FROM users WHERE userid=:id";
$stmt = $db->prepare($query);
$stmt->execute(array(':id'=>$id));
$row=$stmt->fetch(PDO::FETCH_ASSOC);
extract($row);
?>
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content row">
<div class="modal-header custom-modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title">Edit Staff User Details</h4>
</div>
<div class="modal-body">
<form name="info_form" class="form-inline" action="createUser.php" method="post">
<input type="hidden" name="userid" id="update-id" value="<?php echo $_REQUEST['id'] ?>">
<div class="form-group col-sm-12">
<label>Username</label>
<input type="text" class="form-control" name="username-update" id="update-username" value="<?php echo $username ?>">
</div>
<div class="form-group col-sm-12">
<label>Password</label>
<input type="text" class="form-control" name="password-update" id="update-password" value="<?php echo $password ?>">
</div>
<div class="form-group col-sm-12">
<label>Confirm Password</label>
<input type="text" class="form-control" name="confirmpass" id="update-confirmpassword" placeholder="Confirm Password">
</div>
<div class="form-group col-sm-12">
<label>Role</label>
<select class="form-control" name="role-update" id="update-role" class="field-select">
<?php if($role == "staff"){ ?>
<option value="staff">Staff</option>
<option value="admin">Admin</option>
<option value="customer">Customer</option>
<?php }
else if($role == "admin") { ?>
<option value="admin">Admin</option>
<option value="staff">Staff</option>
<option value="customer">Customer</option>
<?php } else{ ?>
<option value="customer">Customer</option>
<option value="staff">Staff</option>
<option value="admin">Admin</option>
<?php } ?>
</select>
</div>
<div class="form-group col-sm-12">
<button type="submit" class="btn btn-default pull-right" id="edit-user">Update</button>
<input type="hidden" name="submit" value="TRUE" />
</div>
</form>
</div>
</div>
</div>
<?php
}
?>
我还应该提到,由于某些奇怪的原因,我不得不两次编写模态代码(一次在 createUser.php
中,然后在 getuser.php
中)否则模式不会弹出。这是我希望将数据发送到的 updateUser.php
中的 SQL 代码。
<?php
require_once 'database.php';
if(isset($_REQUEST['id'])){
$row = intval($_REQUEST['id']);
$updateUsername = $_REQUEST['username'];
$updatePassword = $_REQUEST['password'];
//$confirmpass = $_REQUEST['confirmpassword'];
$updateRole = $_REQUEST['role'];
$query = "UPDATE users SET username=$updateUsername, password=$updatePassword, role=$updateRole WHERE userid=$row ";
$stmt = $db->prepare($query);
$stmt->execute();
}
?>
谁能看出我错在哪里?还应该提到我在这里学习新东西。此外,当我检查检查元素时,表单数据实际上是在提交时发送的。任何帮助深表感谢! :D
最佳答案
我认为您需要像这样将数据作为对象发送:
data: {
id : uid,
username: username,
password: password,
role: role
}
我认为你的选择器也是错误的,试试这个:
var uid = $('input[name="userid"]').val();
var username = $('input[name="username-update"]').val();
var password = $('input[name="password-update"]').val();
var role = $('input[name="role-update"]').val();
关于javascript - 从模态表单中检索值并更新数据库 php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42611728/