【问题标题】:Delete operation not working in ajax删除操作在ajax中不起作用
【发布时间】:2018-06-22 18:47:23
【问题描述】:

我尝试在我的 CRUD 操作中进行删除操作,但是当我单击删除按钮时似乎没有任何工作:每次单击删除按钮时 onclick 事件都没有响应。

我已经尝试了所有方法,但似乎没有任何效果。

以下是源代码:

HTML

<!-- remove modal -->
    <div class="modal fade" tabindex="-1" role="dialog" id="removeDeptModal">
      <div class="modal-dialog" role="document">
        <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"><span class="glyphicon glyphicon-trash"></span> Remove Member</h4>
          </div>
          <div class="modal-body">
            <p>Do you really want to delete this department ?</p>
          </div>
          <div class="modal-footer">
            <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
            <button type="button" class="btn btn-primary" id="removeBtn"><span class="glyphicon glyphicon-trash"></span> Delete</button>
          </div>
        </div><!-- /.modal-content -->
      </div><!-- /.modal-dialog -->
    </div><!-- /.modal -->
    <!-- /remove modal -->

PHP 代码

检索.php

<?php 
require_once('../../includes/config.php'); 
$output = array('data' => array());

$sql = "SELECT * FROM department order by id desc";
$query = $mysqli->query($sql);
$x = 1;
while ($row = $query->fetch_assoc()) {
    $actionButton = '
    <a type="button" data-toggle="modal" data-target="#editMemberModal" class="btn btn-info btn-sm" onclick="editMember('.$row['id'].')"> <span class="glyphicon glyphicon-edit"></span></a>
    <a type="button" data-toggle="modal" data-target="#removeDeptModal" class="btn btn-danger btn-sm" onclick="removeMember('.$row['id'].')"> <span class="glyphicon glyphicon-trash"></span></a>';

    $output['data'][] = array(
        $x,
        $row['dept_code'],
        $row['dept_name'],
        $actionButton
    );
    $x++;
}
// database connection close
$mysqli->close();
echo json_encode($output);

删除.php

<?php 
require_once('../../includes/config.php'); 

$output = array('success' => false, 'messages' => array());
$memberId = $_POST['member_id'];

$sql = "DELETE FROM department WHERE id = {$memberId}";
$query = $mysqli->query($sql);
if($query === TRUE) {
    $output['success'] = true;
    $output['messages'] = 'Successfully Deleted';
} else {
    $output['success'] = false;
    $output['messages'] = 'Error while deleting the Department information';
}
// close database connection
$mysqli->close();
echo json_encode($output);
?>

最后,jquery 代码:

    function removeMember(id = null) {
        if(id) {
            // click on remove button
            $("#removeBtn").unbind('click').bind('click', function() {
                $.ajax({
                    url: 'dept/remove.php',
                    type: 'post',
                    data: {member_id : id},
                    dataType: 'json',
                    success:function(response) {
                        if(response.success == true) {                      
                            $(".removeMessages").html('<div class="alert alert-success alert-dismissible" role="alert">'+
                                  '<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>'
'<strong> <span class="glyphicon glyphicon-ok-sign"></span> </strong>'+response.messages+'</div>');
// refresh the table
                            manageDeptTable.ajax.reload(null, false);
                            // close the modal
                            $("#removeDeptModal").modal('hide');
                        } else {
                            $(".removeMessages").html('<div class="alert alert-warning alert-dismissible" role="alert">'+
                                  '<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>'+ '<strong> <span class="glyphicon glyphicon-exclamation-sign"></span> </strong>'+response.messages+
                                '</div>');
                        }
                    }
                });
            }); // click remove btn
        } else {
            alert('Error: Refresh the page again');
        }
    }

【问题讨论】:

  • 不工作是什么意思,预期的行为是什么?
  • @Ravi,单击删除按钮时应从数据库中删除数据。但是当你点击它时它什么也不做。
  • 可以分享remove.php文件吗?
  • 分享 remove.php 以获得更好的预览效果
  • Weldone 伙计们,您为我指明了正确的方向……现在正在工作。错误来自我已更正的连接字符串。

标签: php jquery mysql sql sql-delete


【解决方案1】:

问题在于你的DELETE sql,

$sql = "DELETE FROM department WHERE id = {$memberId}";

应该是

$sql = "DELETE FROM department WHERE id = $memberId";

另外,我建议改用PreparedStatement,以避免任何 SQL 注入和语法错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-09
    • 1970-01-01
    • 2017-04-04
    • 2022-01-18
    • 1970-01-01
    • 2016-12-26
    • 1970-01-01
    相关资源
    最近更新 更多