javascript - 从 Bootstrap 模式形式更新数据库

标签 javascript php jquery ajax twitter-bootstrap

引用我之前的问题> Displaying php echo $row data into bootstrap modal form

当我使用 $(".saveContact").attr('data-id', result[0]['id' 单击行编辑按钮时,我设置了“保存”按钮数据 ID ]);

在 #editForm 提交的 jQuery 中,我通过 var uid = $(".saveContact").attr('data-id'); 检索了 id 并将其传递给 < strong>updateContact.php,但是当我点击保存按钮并且模式保持打开时没有任何反应。请问是我没有正确传递id还是我更新数据库的UPDATE语句不正确?

tables.php 模式

<div class="modal fade" id="editModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<form class="form-horizontal" method="POST" id="editForm" role="form">
<div class="modal-content">
  <div class="modal-header">
    <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
    <h4 class="modal-title" id="myModalLabel">Edit Contact</h4>
  </div>
  <div class="modal-body">
                <div class="form-group animated fadeIn">
                    <label for="nameInput" class="col-sm-2 control-label">Name</label>
                    <div class="col-sm-10">
                    <input type="name" name="name" class="form-control" id="nameInput" placeholder="Name" required>
                    </div>
                </div>

                <div class="form-group animated fadeIn">
                    <label for="companyInput" class="col-sm-2 control-label">Company</label>
                    <div class="col-sm-10">
                    <input type="company" name="company" class="form-control" id="companyInput" placeholder="Company" required>
                    </div>
                </div>

                <div class="form-group animated fadeIn">
                    <label for="posInput" class="col-sm-2 control-label">Position</label>
                    <div class="col-sm-10">
                    <input type="position" name="position" class="form-control" id="posInput" placeholder="Position/Job Title">
                    </div>
                </div>

                <div class="form-group animated fadeIn">
                    <label for="contactInput" class="col-sm-2 control-label">Contact Number</label>
                    <div class="col-sm-10">
                    <input type="number" name="contact" class="form-control" id="contactInput" placeholder="Office/Mobile Number" data-error="Please enter a valid mobile number" required>
                    </div>
                </div>

                <div class="form-group animated fadeIn">
                    <label for="emailInput" class="col-sm-2 control-label">Email</label>
                    <div class="col-sm-10">
                    <input type="email" name="email" class="form-control" id="emailInput" placeholder="Email Address">
                    </div>
                </div>

                <div class="form-group animated fadeIn">
                    <label for="genderInput" class="col-sm-2 control-label">Gender</label>
                    <div class="col-sm-10">
                    <input type="gender" name="gender" class="form-control" id="genderInput" placeholder="Male/Female">
                    </div>
                </div>
                    <div class="form-group">
                <input type="hidden" name="id" class="form-control" id="idInput" placeholder="ID">
                </div>
                </div>
  <div class="modal-footer">
    <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
    <button id="editContact" type="submit" class="saveContact btn btn-primary" data-id="">Save</button>
  </div>
</div>
</form>
</div>
</div>

enter image description here

jQuery 提交表单

$("#editForm").submit(function(e){
e.preventDefault();
var uid = $("#idInput").val();
var name = $("#nameInput").val();
var company = $("#companyInput").val();
var position = $("#posInput").val();
var contact = $("#contactInput").val();
var email = $("#emailInput").val();
var gender = $("#genderInput").val();

var dataForm = 'name=' + name + '&company=' + company + '&position=' + position + '&contact=' + contact + '&email=' + email + '&gender=' + gender + '&id=' + uid;

$.ajax({
    type: 'POST',
    url: '../admin/dataprocess/updateContact.php',
    data: dataForm,
    success: function(html){
        if(html == "success"){
            $('#contactsTable').dataTable().reload();
            $('#editModal').modal('toggle');
        }
    }
    });

});

updateContact.php

<?php
include("dbconnect.php");

$name = $_POST['name'];
$company = $_POST['company'];
$position = $_POST['position'];
$contact = $_POST['contact'];
$email = $_POST['email'];
$gender = $_POST['gender'];
$id = $_POST['id'];

$stmt = $link->prepare("UPDATE businesscontact SET name = ?, company = ?, position = ?, phone = ?, email = ?, gender = ? WHERE id = $id");
$stmt-> bind_param("ssssss", $name, $company, $position, $contact, $email, $gender);
if($stmt->execute()){
    echo "success";
}else{
    echo(mysqli_error($link);
}


mysqli_close($link);
?>

最佳答案

正如我在评论中所述;

echo(mysqli_error($link); // <- theoretically missing a )

导致此处出现错误,因为缺少括号。

@Fred-ii- Thanks for pointing that out, it was indeed just that that caused the update to not work. – Kayden"

无论如何你甚至不需要这里的“echo ”。

只需使用以下内容即可。它会自行触发“echo ”错误:

mysqli_error($link);

因为“echo”是一种语言结构,所以不需要括号。

错误报告会在这里帮助你。

关于javascript - 从 Bootstrap 模式形式更新数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42763294/

相关文章:

javascript - 如何在 Magento 2 中将我的商店用作渐进式 Web 应用程序?

php - 注册 PHP session 变量

php - 通过CloudFlare获取正确的访客IP

jquery - tinymce自定义字体大小输入字体大小列表

jquery - 当使用 jQuery 单击表行时,如何获取特定列的文本?

jquery - jQuery 中的输入字段占位符

javascript - 在样式组件中模拟主题

javascript - 为什么 JavaScript 无法读取这个 C# 变量?

javascript - 如何从jquery数据表中的ajax调用获取动态列标题和结果

php - MySQL 和 date() 查询