javascript - 从模态表单中检索值并更新数据库 php

标签 javascript php jquery mysql twitter-bootstrap

不确定我的处理是否正确,但基本上我是在尝试使用模态编辑表格中的一行。到目前为止,我有 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/

相关文章:

php - jQuery(或任何网络工具)嵌套表达式生成器

jquery - 选择列出一个项目(如果它有子列表)

javascript - 阻止插入值?

javascript - 将 JSON 对象发布到 iFrame

javascript - 如何设置在 Rails 4 中选中的第一个子元素单选按钮?

javascript - 我如何使用单击的 li 选项填充搜索过滤器 lul ,并将其放置在搜索字段中

jquery - 使用导航堆叠时如何在导航丸中应用边框?

javascript - Cordova 插件不适用于 Ionic

PHP/MySQL 基于数组内容的平均值

php - 在网页上包含外部代码(php include() 或 get_header())