Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/03/2014, 16:49
Avatar de JeMaGa
JeMaGa
 
Fecha de Ingreso: julio-2011
Ubicación: Bogota
Mensajes: 430
Antigüedad: 12 años, 9 meses
Puntos: 4
onblur en yii framework

Buenas Tardes necesito una ayuda un poco urgente, en un controlador tengo un metodo que me realiza una consulta, pero necesito que este metodo se realice cuando mi textField pierda el foco. tengo esto

en el formulario estoy realizando la sentencia en ajax y llamo el método a través de un boton y me realiza la consulta que necesito

este es mi formulario _form
Código PHP:
Ver original
  1. <div class="row">
  2.                 <div class="col-xs-4">
  3.                     <?php echo $form->labelEx($model, 'Contrato'); ?>
  4.                     <?php echo TbHtml::telField('Contrato','', array('span' => 2));
  5.                     echo TbHtml::submitButton('Buscar', array('color' => TbHtml::BUTTON_COLOR_PRIMARY,
  6.                             "ajax" => array(
  7.                             "type" => "post",
  8.                             "url" => Yii::app()->createUrl("ventas/documentos/validaContrato"),
  9.                             "data" => array(
  10.                                 "id" => "js:$('#Contrato').val()"
  11.                             ),
  12.                             "success" => "function(data){
  13.                                $('#resultado').html(data);
  14.                            }",
  15.                             "error" => "function(data){
  16.                                $('#resultado').html('');
  17.                            }",
  18.                       )
  19.                     ))
  20.                    
  21.                     ?>
  22.                     <?php echo $form->error($model, 'Contrato'); ?>
  23.                 </div>
  24. </div>

esto es lo que esta en mi controlador el metodo el controlador se llama DocumentosController
Código PHP:
Ver original
  1. public function actionValidaContrato() {
  2.         $bus = true;
  3.  
  4.         if (!isset($_POST["id"]) || $_POST["id"] == "") {
  5.             $bus = false;
  6.         }
  7.  
  8.         if ($bus == true) {
  9.             $criteria = new CDbCriteria;
  10.  
  11.             $criteria->addCondition('Contrato="' . $_POST["id"] . '"');
  12.  
  13.             $resultados = Cliente::model()->findAll($criteria);
  14.             $this->renderPartial('existe', array('resultados' => $resultados),FALSE,TRUE);
  15.         } else {
  16.             throw new CHttpException(500, 'Faltan Parametros');
  17.         }
  18.     }

y el archivo existe el qeu esta nombrado en el renderpartial tiene esto

<?php
if (isset($resultados)) {
if (count($resultados) > 0) {
// echo $form->labelEx($model, 'Ruta');'model' => $model,
$this->widget('CMultiFileUpload', array(
'name' => 'Ruta',
'attribute' => 'Ruta',
'accept' => 'jpg|gif|png',
'denied' => 'El tipo de archivo no es permitido',
'duplicate' => 'Archivos duplicados'
));
// echo $form->error($model, 'Ruta');
} else {
?>
<div class="alert alert-danger"># Contrato no existe</div>
<?php
}
}
?>

necesito que ese método funcione sin boton solo con quitar el foco

agradesco toda la ayuda que me puedan brindar