Botones en CJuiDialog

HOla para todos :) !!

Bueno yo sigo aqui juiciosa aprendiendo, pero debo recurrir al foro por una duda, es depronto una bobada, pero me atore en ese punto y no he podido avanzar.

Activo una ventana modal usando cJuiDialog.

En las instrucciones indican que los botones de estas ventanas se activan de esta manera


'buttons' => array

(

     'Ok'=>'js:function(){alert("ok")}',

     'Cancel'=>'js:function(){alert("cancel")}',

),

Eso funciona perfecto.

Mi problema es cuando quiero que uno de esos bototones, por ejemplo el ok, me ejecute la siguiente linea, para cargar una nueva pantalla:


$this->createUrl('mi_modelo/mi_vista')

Trate muchas cosas, entre las cuales esta linea, pero obviamente no funciona :


'Ok'=>$this->createUrl('mi_modelo/mi_vista')

No se como decirle al boton que ejecute esa linea, se peude hacer ? tengo problemas de gramatica ? alguien tiene alguna idea , helppp !!!

Hola! Yo probaría algo así como:

‘Ok’=> "window.location = " . $this->createUrl(‘mi_modelo/mi_vista’)

Por que entiendo que el contendio va a ejecutarse luego en el cliente.

Suerte ;)

En vez de usar la opción de JuiDialog, podrías agregar un botón directamente en el contenido del dialog así:





<?php

$this->beginWidget('zii.widgets.jui.CJuiDialog', array(

    'id' => 'window',

    'options' => array(

        'title' => 'Ventana de ejemplo',

        'autoOpen' => false,

    ),

));

?>

Contenido de ejemplo.

<div class="row buttons">

    <?php echo CHtml::ajaxSubmitButton('etiquetaBoton'), CHtml::normalizeUrl(array('ajax/test', 'render' => false)), array('update' => '#window')); ?>

</div>

<?php $this->endWidget('zii.widgets.jui.CJuiDialog'); ?>



Juan Pablo, gracias por la respuesta

He intentado de la manera que me indicas:


    'buttons' => array(

        'Cancelar'=>'js:function(){  $("#my_ventana").dialog("close");   }',

        'Continuar'=> "window.location = " . $this->createUrl('my_modelo/my_vista'),

       

        ),  

pero el resultado es extrano, desaparecen los botones de le ventana cJuiDialog, mienstras que si lo hago de esta manera:


    'buttons' => array(

        'Cancelar'=>'js:function(){  $("#my_ventana").dialog("close");   }',

       

        ),  

El boton cancelar si aparece

MRiveraSch Gracias por tu respuesta.

Yes, temporalmente me toco implementar una solucion similar y poner los botones dentro del contenido de la ventana, dana un poco el diseno de lo uqe estaba haciendo, pero bueno, me permitio avanzar a otro tema.

Aun me queda la curiosidad como lograr que el boton de cJuiDialog ejecute la accion. :huh:

Aunque un poco de css puede arreglar eso, y probablemente ajaxSubmitButton() es más potente que la opción de botones dentro del CJuiDialog.

De todas formas igual quedé "metido" con cómo hacerlo directamente desde la instancia de JuiDialog.

solucionaste tu duda?

HOla de nuevo

No Juan Pablo, no encontre documentacion de como lograrlo usando los botones de cJuiDialog. :huh:

Lo mas sencillo resulto ser modificar el CSS, para usar una imagen como boton, dentro de la ventana modal de cJuiDialog, gracias por preguntar.