从模态表单中检索值并更新数据库php
Posted
技术标签:
【中文标题】从模态表单中检索值并更新数据库php【英文标题】:Retrieve value from modal form and update database php 【发布时间】:2017-07-25 12:03:41 【问题描述】:不确定我是否正确地处理了这个问题,但基本上我正在尝试使用模式编辑表格中的一行。到目前为止,我有 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
【问题讨论】:
【参考方案1】:我认为您需要像这样将数据作为对象发送:
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();
【讨论】:
我进行了更改,但实际数据库并未更新,在我发送请求时在检查元素的表单数据中..实际数据在那里..有没有另一种方法来检索它表单数据? 您能否分享您在网络选项卡中对此请求的回复? 刚刚检查了响应中没有任何内容,但是调用了 updateUser.php 并且包含的表单数据是:id:5 用户名:Akeeb 密码:Testing1234 角色(这是一个下拉框 我设法获得了下拉值,现在它只是实际提取该数据并在查询中使用它:/ 嘿@FraserReid,我设法弄明白了.. 感谢您的所有帮助好友,非常感谢,我非常感谢! :D以上是关于从模态表单中检索值并更新数据库php的主要内容,如果未能解决你的问题,请参考以下文章
如何从 MySQL 数据库中获取最后一个插入值并更新 Access 中的字段?