【问题标题】:Sweet Alert Confirm - Get user responseSweet Alert Confirm - 获取用户响应
【发布时间】:2018-02-08 00:42:35
【问题描述】:

我有一个 JS 文件,其中有这样的函数:

function eliminarProducto(id){
  var url = '../php/apartado/elimina_producto.php';
  var pregunta = confirm('Are you sure to delete this user?');

浏览器中显示的消息看起来很简单,所以我想通过 Sweet Alert 消息来更改它……但我不知道怎么做! ;(

if(pregunta==true){
  $.ajax({
    type:'POST',
    url:url,
    data:'id='+id,
    success: function(registro){
      $('#agrega-registros').html(registro);
      return false;
    }
  });
  return false;
}else{
  return false;
}

**************************** 编辑后的帖子 ********************** ******** 新代码

function eliminarProducto(id){
  var url = '../php/apartado/elimina_producto.php';

  swal({
    title: '¡Atención!',
    text: "¿Desea eliminar el registro?",
    type: 'warning',
    showCancelButton: true,
    confirmButtonText: 'Aceptar'
  }).then(function(){
    $.ajax({
      type:'POST',
      url:url,
      data:'id='+id,
      success: function(registro){
        $('#agrega-registros').html(registro);
      }
    });
  })
}

如果我选择取消选项,我该如何中断操作??? :)

【问题讨论】:

  • 奇怪地不清楚...您声明知道如何通过 PHP 实例化 swal()。然后你似乎在问如何将平庸的confirm() 替换为swal()。所以……嘿?大声笑...你能启发我吗?
  • 似乎更多地与 Ajax 异步响应相关,而不是使用 Swal 插件或任何 PHP 问题。 -- 我修复了标签。
  • 好吧,让我们看看,PHP 上第一个使用甜蜜警报的代码我写它就像一个参考,因为我已经知道如何去做或它是如何工作的。但是在 JS 文件上使用函数我不知道如何像第一个那样使用甜蜜警报发出消息,这就是为什么我使用“确认”但看起来很简单。 :/ 基本上,我正在寻找将 jquery 确认转换为甜蜜警报确认。
  • 好吧..他们完全改变了他们的文档......这让我很难找到我的想法。但请看这里:sweetalert.js.org/docs/#buttons
  • 谢谢,我去看看。 :) 我会尝试一些事情。

标签: javascript jquery ajax sweetalert


【解决方案1】:

假设你有一个“swal”工作。

我如何管理“确认”决定是:

.catch(swal.noop).then(function(result){...});

“catch”指令主要是用于背景单击或模态关闭。我认为它代表“无操作”,但我不确定。它适用于其他任何“OK”或“Not OK”按钮。它抓住它并杀死它。

因此,如果您确实从两个按钮之一获得了“结果”,则适用“then”子句。
所以result 是一个反映用户选择的布尔真/假。

您的代码将是:

function eliminarProducto(id){
  var url = '../php/apartado/elimina_producto.php';

  swal({
    title: '¡Atención!',
    text: "¿Desea eliminar el registro?",
    type: 'warning',
    showCancelButton: true,
    confirmButtonText: 'Aceptar'
  }).catch(swal.noop).then(function(result){  // Change here.
    if(result){                               // If "yes" from user.
      $.ajax({
        type:'POST',
        url:url,
        data:'id='+id,
        success: function(registro){
          $('#agrega-registros').html(registro);
        }
      });
    }
  })
}

【讨论】:

  • noop 确实代表没有操作。 :) 这在机器语言中相当普遍。
  • @MustacheMoses:OP 说西班牙语,我的母语是法语。所以...由于 noop 在 Swal 文档中没有得到很好的定义(而且 new docs 更可爱,但是 arrg!什么是 H?),我想这个问题/答案是相关的......并且对于许多人来说. ;)
  • 我理解你的沮丧。感谢您的出色回答。
  • @MustacheMoses:这里没有挫败感......只是对文档的欺骗......因为我已经习惯了一段时间,因为我经常使用该插件。现在它是全新的和可爱的,但(乍一看)更难找到信息。
  • 谢谢,它成功了。 :) 因此,我使用了另一个选项: swal({title: 'Are you sure?', showCancelButton: true}).then(result => { if (result.value) { // 处理确认按钮单击 // 结果.value 将包含 true 或输入值 } else { // 处理解雇 // result.dismiss 可以是 'cancel'、'overlay'、'esc' 或 'timer' } }) 祝你有美好的一天,感谢你的时间。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-10
  • 1970-01-01
  • 1970-01-01
  • 2017-10-05
相关资源
最近更新 更多