【问题标题】:Delete row from table and use bootstrap modal as confirmation从表中删除行并使用引导模式作为确认
【发布时间】:2016-08-16 10:18:45
【问题描述】:

我希望从我的 codeigniter 框架项目的用户表中删除一行。

我想单击删除按钮,并弹出一个模式窗口,询问用户是否确定删除记录,单击“是”后,我想显示另一个确认已完成的窗口。

我只是在将数据库动态 ID 传递给我的 ajax 调用而不刷新页面时遇到问题,因为我不知道该怎么做:-

<div class = "wrapper">
<table class="table table-striped">

    <thead class = "table_head">
    <tr>
        <th>ID</th>
        <th>First Name</th>
        <th>Last Name</th>
        <th>Username</th>
        <th>Class</th>
        <th>Edit</th>
        <th>Delete</th>
    </tr>
    </thead>
    <tbody class ="searchable">

    <?php echo validation_errors(); ?>
    <?php if (is_array($users)) {?>
<?php foreach($users as $user){?>
    <tr>

        <td><?php echo $user->ID;?></td>
        <td><?php echo $user->first_name;?></td>
        <td><?php echo $user->last_name;?></td>
        <td><?php echo $user->username;?></td>
        <td><?php echo $user->class;?></td>
        <td><a href ="<?php echo base_url().'index.php/User/edit_user/'. $user->ID ;?>"> Edit</a></td>
        <td><a id = "mybutton" data-toggle="modal" data-target="#confirm_delete_modal" data-id="<?php echo $user->ID;?>"> Delete</a></td>



    </tr>
<?php }}
    ?>
    <?php if(!$users){
        echo '<div class="noresults">';
        echo 'No users available';
        echo '</div>';
    }?>
</tbody>
  </table>

从上面的编辑部分可以看出,我需要将 $user->ID 传递给模态窗口才能删除指定的用户。

  <div id="confirm_delete_modal" class="modal fade" role="dialog">
  <div class="modal-body">
      <p id = "valcomplete"> Are you sure you wish to delete this user?</p>
  </div>
  <a id ="confirmbutton" style = "cursor:pointer;  color:black;">Yes</a>
  <a data-toggle="modal" data-target="#confirm_delete_modal" id ="exitbutton" style = " cursor:pointer; color:black;">No</a>

  <div id="deleted" class="modal fade" role="dialog">
      <div class="modal-body">
          <p id = "valcomplete"> User deleted</p>
      </div>
      <a data-toggle="modal" data-target="#deleted" id ="exitbutton" style = "color:black;">Exit</a>
  </div>

我现在拥有的:

   $('#mybutton').click(function(){
    var ID = $(this).data('id');
    $('#confirm-button').data('id', ID); //set the data attribute on the modal button
});

$('#confirm-button').click(function(){
    var ID = $(this).data('id');
    $.ajax({
        url: "<?php echo base_url(); ?>index.php/Admin/delete_user/"+ID,
        type: "post",
        data:ID,
        success: function (data) {
          $("#confirm_delete_modal").modal('hide');
          $("#deleted").modal('show');

        }
      });
});

谁能帮帮我??谢谢

【问题讨论】:

标签: php jquery ajax codeigniter bootstrap-modal


【解决方案1】:

为您的按钮添加另一个数据属性并将其设置为您要删除的行的 ID。

<td><a data-id="some_id" data-toggle="modal" data-target="#confirm_delete_modal"> Delete</a></td>

然后您可以像这样访问/传递它:

$('your-button').click(function(){
    var ID = $(this).data('id');
});

在您的情况下,您需要将 ID 传递给您的模态,然后传递给 AJAX,以便您可以在模态确认按钮上动态设置数据属性:

$('button-that-brings-up-modal').click(function(){
    var ID = $(this).data('id');
    $('#confirm-button').data('id', ID); //set the data attribute on the modal button
});

$('#confirm-button').click(function(){
    var ID = $(this).data('id');
    $.ajax({
        url: "<?php echo base_url(); ?>index.php/Admin/delete_user/" + ID
    });
});

【讨论】:

  • 你知道我将如何传递一个 php 变量给它吗?
  • data-id="&lt;?php echo $user-&gt;ID;?&gt;"
  • 我似乎无法将 ID 从表传递到确认模式,然后传递到 ajax 调用?如果我将 data-id 传递给确认模式,那么我如何将它传递给 ajax 调用,因为我只是在使用 ajax 时寻找按钮单击?感谢您的帮助
  • 当我在确认模式中单击“是”按钮时似乎没有发生任何事情,并且控制台窗口中似乎也没有出现任何内容,这很奇怪!我已经更新了我上面的代码,你能看到我哪里出错了吗?再次感谢,我很感激!
  • 我会在每个阶段控制日志 ID。如果它们符合预期,请使用 Chromes 开发者控制台,检查网络选项卡并确保 Ajax 的 URL 正确。如果一切正常,那么它可能是您的控制器或模型中的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-05
  • 1970-01-01
  • 1970-01-01
  • 2016-06-10
相关资源
最近更新 更多