Como pedir confirmacion en una ventana modal con yii2

Hola a todos
Lo que quiero hacer es, que al presionar un botón, le salga una ventana de confirmación al usuario, y en dependencia de su respuesta ejecuta o no la acción.

Para ello estoy usando una ventana modal con el widget Dialog de Kartik, que usa js para mostrar y obtener la respuesta del Dialogo, con este codigo:

// javascript for triggering the dialogs
$js = <<< JS
    $("#btn-borrafact").on("click", function() {
        krajeeDialog.confirm("¿Seguro que desea continuar?", function (result) {

            if (result) {
               // Aqui debe ir el codigo que llama a la accion del controlador
            } 
        });
    });
JS;
// register your javascript
$this->registerJs($js);

Lo que no se es, que poner para llamar a la accion que debe ejecutarse al responder que Si.
O quizás tenga que usar otra forma de hacer lo que quiero.

De que forma podría hacer lo que necesito?

Pues ya encontre la solucion, el codigo que buscaba es este:

window.location.href = '<nombre de la accion que quiero ejecutar>';

Sé que ya escribiste que ya encontraste la solución, pero yo lo que haría sería enviar los datos al modal en campos ocultos dentro de este modal, y luego, enviar la información con la opción que desees a través de un action.

Gracias por tu respuesta
Esa tambien podria ser otra solucion, pero no se como implementarla, pues ahi esta el detalle de lo que no se como hacer:

  • Saber que opcion selecciono el usuario (Si/No)
  • En caso de Si, llamar a la accion del controlador

Aunque la solucion que encontre es bastante simple

  1. Debes crear una acción en un js (o en tu misma vista) que se ejecute en el onclick de tu botón principal (ej: onclick=“myFunction()” ).
  2. En tu función, además de la función para abrir el modal, deberás tener un par de variables para capturar los valores de inputs principales que deseas pasar a los inputs ocultos de tu modal.
  3. En tu vista, debes agregar un modal (que puede ser manual con bootstrap o con el widget de Yii), en el cual debes tener 2 cosas. 1.Unos campos ocultos para recibir los datos que recogerás desde tus inputs. 2. Un mensaje y dos botones, uno para enviar los datos en un onclick, y otro para cerrar el modal.
  4. Luego, debes hacer otra función en tu js para enviar los datos de tu formulario a tu acción en tu controlador por medio de ajax, capturando los campos ocultos en variables que puedas mandar como datos.
  5. Tu acción debe ser común y corriente, como siempre has hecho tus acciones para guardar datos y enviar el correo. Si necesitas más info sobre esto, la documentación de Yii te puede ayudar mucho.
  6. Configurar el servicio de envío de correos con la opción que te brinda Yii, es la mejor opción porque no tienes que comenzar desde cero y ya hay una demo de un template para envío de correos, es solo cuestión de configurarlo en tu proyecto.
    Y listo, así lo he hecho yo en otros proyectos.

Aquí te dejo algunas guías que te podrán servir:

Cualquier duda si puedo ayudarte la dejas en el tema y responderé en cuanto pueda.
Saludos y éxitos.

Vaya, muy buena explicación, voy a intentarlo tambien con lo que me dices.
Aunque en mi caso no es necesario la parte del envio de correo

Y muchas gracias tambien por los enlaces que me das, seguire aprendiendo mas