dongzhuo2371 2015-11-08 05:01
浏览 56
已采纳

带有Codeigniter的Sweet Alert用于删除事件

I'm having problems trying to make sweet alerts work on my codeigniter code, on the index of my clients module i have (part of code):

<table class="table table-striped">
    <tr>
        <td>ID</td>
        <td>Empresa</td>
        <td>Contacto</td>
        <td>RNC</td>
        <td>Telefono</td>
        <td>Email</td>
        <td>Acciones</td>
    </tr>
    <?php foreach($clientes as $c): ?>
    <tr>
        <td><?php echo $c['id']; ?></td>
        <td><?php echo $c['empresa']; ?></td>
        <td><?php echo $c['contacto']; ?></td>
        <td><?php echo $c['rnc']; ?></td>
        <td><?php echo $c['telefono']; ?></td>
        <td><?php echo $c['email']; ?></td>
        <td>
            <a href="<?php echo site_url('clientes/edit/'.$c['id']); ?>" class="btn btn-info">Editar</a> 
            <a href="<?php echo site_url('clientes/delete/'.$c['id']); ?>" class="btn btn-danger">Eliminar</a>
            <a href="<?php echo site_url('clientes/view/'.$c['id']); ?>" class="btn btn-danger">Ver</a>

        </td>
    </tr>
    <?php endforeach; ?>

</table>

Then i have in my js this:

$('#AlertaEliminarCliente').on("click", function() {
  swal({
      title: "Está seguro?",
      text: "No podrá recuperar el cliente una vez sea eliminado!",
      type: "warning",
      showCancelButton: true,
      confirmButtonColor: '#DD6B55',
      confirmButtonText: 'Si, Eliminarlo!',
      cancelButtonText: "No, Cancelar!",
      confirmButtonClass: "btn-danger",
      closeOnConfirm: false,
      closeOnCancel: false
    },
    function(isConfirm) {
      if (isConfirm) {
        swal("Eliminado!", "Su cliente ha sido eliminado!", "success");
      } else {
        swal("Cancelado", "Su cliente está a salvo! :)", "error");
      }
    });
});

How can i add the id #AlertaEliminarCliente to my button

i have tried to add it and it just delete the row without asking for confirmation etc.. from sweet alert, is there something that i am missing? any guidance its really appreciated, thanks guy for your time!

</div>
  • 写回答

2条回答 默认 最新

  • douchuo9476 2015-11-08 05:52
    关注

    Clicking on the button will take the user to the url clientes/delete/'.$c['id'] regardless of user interaction with sweet alert. You need to modify your jQuery to prevent the url change, and only redirect the user on their choice of the sweet alert prompt.

    $('#AlertaEliminarCliente').on("click", function(e) {
      e.preventDefault();
      var url = $(this).attr('href');
      swal({
          title: "Está seguro?",
          text: "No podrá recuperar el cliente una vez sea eliminado!",
          type: "warning",
          showCancelButton: true,
          confirmButtonColor: '#DD6B55',
          confirmButtonText: 'Si, Eliminarlo!',
          cancelButtonText: "No, Cancelar!",
          confirmButtonClass: "btn-danger",
          closeOnConfirm: false,
          closeOnCancel: false
        },
        function(isConfirm) {
          if (isConfirm) {
            swal("Eliminado!", "Su cliente ha sido eliminado!", "success");
            window.location.replace(url);
          } else {
            swal("Cancelado", "Su cliente está a salvo! :)", "error");
          }
        });
    });
    

    You may want to set a timeout to still display the final message before the url change

    setTimeout(function(){ window.location.replace = url; }, 2000);
    

    Final note: if you intend to use this method on more than one element on the page you should use .AlertaEliminarCliente rather than #AlertaEliminarCliente

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?