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.
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.
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()” ).
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.
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.
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.
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.
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.