Manejo de eventos con activeTextField

Hola, estoy desarrollando una aplicación, en esta tengo un activeTextField el cual quiero que active una función que se encuentra en una clase del modelo, para activar el evento uso el siguiente código en la vista que se encarga de mostrar el activeTextField:

<div class="simple">

<?php echo CHtml::activeLabelEx($model,‘IdUsuario’); ?>

[b]<?php echo CHtml::activeTextField($model,‘IdUsuario’, array(‘onClick’ => ‘alert(1234)’)); ?>

[/b]</div>

<div class="simple">

<?php echo CHtml::activeLabelEx($model,‘TipoHoraLaboral’); ?>

<?php echo CHtml::activeDropDownList($model,‘TipoHoraLaboral’,TipoHoraLaboral::model()->TiposHoralaboral); ?>

</div>

Este despliega un mensaje para verificar que el evento esta funcionando correctamente, lo que no puedo hacer es llamar la función que se encuentra en la clase del modelo, porque no se como se llama desde el evento del activeTextField, alguien me podría ayudar con esto, o por lo menos facilitarme un ejemplo donde se haga algo parecido.

Hola Juan Diego. Te saludo desde Argentina. Te

cuento que soy nuevo en este framework… soy usuario de cakephp, pero estoy estudiando este software… por sus caracteristicas.

Una proposicion al problema que tienes… separa ambos mundos… el lado cliente (el navegador) y el lado servidor (app yii con modelos, controladores y vistas).

El evento del campo de texto es un evento del DOM que se manipula con Javascript. Cuando atrapas el evento, deseas llamar una funcion … que se encuentra del lado del servidor… inalcanzable desde javascript directamente.

La solucion es indirecta… llamar al controlador del lado del server… usando Ajax… te propongo usar Jquery … un framework javascript facil de usar. Recuerda que una funcion de algun modelo no es recomendable usarse en otra clase que no sea un controlador

Saludos,

Gustavo

No viene mal un ejemplo sobre tu vista. ;D

<div class="simple">

<?php echo CHtml::activeLabelEx($model,‘IdUsuario’); ?>

<?php echo CHtml::activeTextField($model,‘IdUsuario’, array(‘id’ => ‘idUsuario’)); ?>

</div>

<div class="simple">

<?php echo CHtml::activeLabelEx($model,‘TipoHoraLaboral’); ?>

<?php echo CHtml::activeDropDownList($model,‘TipoHoraLaboral’,TipoHoraLaboral::model()->TiposHoralaboral); ?>

</div>

<?php

$jsCode = $jsCode = <<<FIN

/** Se necesita Jquery >=1.3 */

function ajaxLLamarFuncController() {

//hacemos llamada Ajax


//hacemos algo con el resultado.. un autocomplete del campo de texto?? :-)

}

//Esto se ejecuta cuando se carga el DOM

$(document).ready(function(){ $(’#idUsuario’).click(function(){ ajaxLLamarFuncController(); }) }); //ADICIONAMOS EVENTO CLICK A CAMPO DE TEXTO

FIN;

?>

Saludos!