0

私が持っているクライアントモジュールのインデックス(コードの一部)で、コードイグナイターコードで甘いアラートを機能させようとすると問題が発生します。

<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>

それから私は私のjsにこれを持っています:

$('#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");
      }
    });
});

ID #AlertaEliminarCliente をボタンに追加するにはどうすればよいですか

私はそれを追加しようとしましたが、確認などを求めずに行を削除するだけです.甘いアラートから、私が欠けているものはありますか? ガイダンスは本当に感謝しています。時間を割いてくれてありがとう!

4

2 に答える 2

2

ボタンをクリックすると、ユーザーclientes/delete/'.$c['id']が甘いアラートと対話したかどうかに関係なく、ユーザーはその URL に移動します。URLの変更を防ぐためにjQueryを変更し、ユーザーが選択した甘いアラートプロンプトでのみリダイレクトする必要があります。

$('#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");
      }
    });
});

URL が変更される前に最終メッセージを表示するために、タイムアウトを設定することをお勧めします。

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

最後の注意: ページ上の複数の要素でこのメソッドを使用する場合.AlertaEliminarClienteは、#AlertaEliminarCliente

于 2015-11-08T05:52:54.813 に答える
0

デフォルトのアクション (削除) を停止するにevent.preventDefault();は、関数の先頭に置きます。これにより、ボタン (またはリンク) アクションが発生しなくなります。

$('#AlertaEliminarCliente').on("click", function(event) {
  event.preventDefault();
  swal({...

また、 id を使用する要素があるようには見えませんAlertaEliminarCliente。このコード行でそれが必要だと思います。

<a href="<?php echo site_url('clientes/delete/'.$c['id']); ?>" 
    class="btn btn-danger" id="AlertaEliminarCliente">Eliminar</a>
于 2015-11-08T06:00:38.483 に答える