尝试从SQL中删除并删除模式上的项目和显示消息

时间:2016-05-09 08:14:53

标签: jquery ajax

查看页面

 <a href="#" data-id='.$row['employee_id'].' data-target="#confirm-delete" data-toggle="modal"><span class="glyphicon glyphicon-trash"></span></a>

Bootstrap Modal

 <div class="modal fade" tabindex="-1" role="dialog" id="confirm-delete">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-body">
       <h1>Delete a Employee</h1>
        <div class="alert-success" style="display: none;">Successfully delete</div>
        <form class="form-horizontal" action="" method="post">
        <input type="hidden" name="id" id="delete-form" value=""/>
          <p class="alert alert-error">Are you sure to delete ?</p>
          <div class="form-actions">
              <button type="submit" class="btn btn-danger" data-id="">Yes</button>
              <a class="btn" href="view-list.php">No</a>
            </div>
        </form>
    </div>
  </div>
</div>

脚本

  var valueID;

  $('.glyphicon-trash').click(function(){
    valueID = $(this).parent().data('id');
    console.log('id ' + valueID);
    $('#delete-form').val(valueID);
    $('.btn-danger').attr('data-id', valueID);
  });

  $('.btn-danger').on('click', function(e){
    var val = $(this).data('id');
    $.ajax({
        type: "POST",
        url: 'delete.php',
        data: 'employee='+val,
        success: function(data){
          $('.alert-success').fadeIn(200).show();
          setTimeout(function(){
        $("#confirm-delete").modal('hide');
    }, 3000);

        },
        error: function(data){
          $('.alert-danger').html('Failed');
        }
    });
  });

当在模态上单击“是”按钮时,它应显示成功消息,然后模态在2秒后消失。但是特定行不会消失,并且其行中的数据也不会被删除。我无法理解为什么。感谢帮助

1 个答案:

答案 0 :(得分:0)

在第

data-id='.$row['employee_id'].'

您为HTML属性和哈希键字符串使用了单引号。它可能是将HTML与PHP代码混合在一起,而不是打印任何值。固定版本如下:

data-id='.$row["employee_id"].'

或许你应该写

<?php echo $row['employee_id']; ?>

这取决于您打印HTML代码的方式。此外,请始终记住清理用户输入。下面的一行有一个安全漏洞:

data: 'employee='+val,

任何人都可以通过提供不同的ID来删除其他用户,或者通过编辑HTML表单(使用像Firebug这样的浏览器开发人员工具)来更改 val 值来做一些讨厌的事情比如 DROP TABLE USERS; 命令。