Agregar Ajax para buscar una descripcion

De CidesaWiki

(Diferencias entre revisiones)
Saltar a navegación, buscar
Línea 19: Línea 19:
* En el complete se indica la funcion javascripts que se va a ejecutar, esta función ya existe dentro del archivo ajax.js.
* En el complete se indica la funcion javascripts que se va a ejecutar, esta función ya existe dentro del archivo ajax.js.
*El with son los parametros que deben pasarse a la funcion que se ejecutara en el actions.class
*El with son los parametros que deben pasarse a la funcion que se ejecutara en el actions.class
-
Estos parametros son necesarios, El parametro ajax: indica la accion ejecutar dentro de la función executeAjax.
+
Estos parametros son necesarios,  
-
    El parametro cajtexmos: indica el nombre del id de la caja de texto donde se va a colocar la descripción a mostrar.
+
*El parametro ajax: indica la accion ejecutar dentro de la función executeAjax.
-
    El parametro cajtexcom es para el caso de que el valor que se esta tipeando se quiera rellenar con ceros a la izquierda, si es el caso aqui se coloca el nombre de la caja de texto correspondiente, y sino se pasa vacio (' ')
+
*El parametro cajtexmos: indica el nombre del id de la caja de texto donde se va a colocar la descripción a mostrar.
-
  El parametro codigo,siempre debe ir informado con this.value, que indica el valor que se acaba de tipear.
+
*El parametro cajtexcom es para el caso de que el valor que se esta tipeando se quiera rellenar con ceros a la izquierda, si es el caso aqui se coloca el nombre de la caja de texto correspondiente, y sino se pasa vacio (' ')
 +
*El parametro codigo,siempre debe ir informado con this.value, que indica el valor que se acaba de tipear.
   Ahora en el archivo actions.class se debe colocar la siguiente función
   Ahora en el archivo actions.class se debe colocar la siguiente función
<pre>
<pre>

Revisión de 13:17 27 abr 2007

  <?php echo javascript_include_tag('ajax') ?>
Luego ubicar dentro del _edit_form, la caja de texto donde se escribira el código al cual le quiero buscar la descripción, por ejemplo en el formulario Registro de Articulos (Almregart) necesito que al tipear el código del ramo se muestre la descripcion del mismo, en este caso dentro de la caja de texto del codigo del ramo debemos programar el evento onBlur (perder el foco) para que ejecute un procedimiento que busque en la base de datos la descripción correspondiente y la pinte en la vista de forma inmediata. Para ello la caja de texto del código del ramo queda de la siguiente manera
  <?php $value = object_input_tag($caregart, 'getRamart', array (
  'size' => 20,
  'control_name' => 'caregart[ramart]',
  'maxlength' => 6,    
  'onBlur'=> remote_function(array(
			  'url'      => 'almregart/ajax',  			   
			  'complete' => 'AjaxJSON(request, json)',
  			  'with' => "'ajax=1&cajtexmos=nomram&cajtexcom=caregart_ramart&codigo='+this.value"
			  )),    
)); echo $value ? $value : ' ' ?> 
En el evento onBlur se usa el remote_function que tiene los siguientes parametros

Estos parametros son necesarios,

  Ahora en el archivo actions.class se debe colocar la siguiente función
  public function executeAjax()
	{
	 $cajtexmos=$this->getRequestParameter('cajtexmos');
     $cajtexcom=$this->getRequestParameter('cajtexcom');
	  if ($this->getRequestParameter('ajax')=='1')
	    {
	  		$dato=CaramartPeer::getDesramo($this->getRequestParameter('codigo'));	  			 
            $output = '[["'.$cajtexmos.'","'.$dato.'",""],["'.$cajtexcom.'","6","c"]]';		 			 	    
	    } 
	    else  if ($this->getRequestParameter('ajax')=='2')
	    {
	  		$dato=CadefalmPeer::getDesalmacen($this->getRequestParameter('codigo'));	  			 
            $output = '[["'.$cajtexmos.'","'.$dato.'",""],["'.$cajtexcom.'","6","c"]]';		 			 	    
	    } 		  	    
		 else  if ($this->getRequestParameter('ajax')=='3')
	    {
	  		$dato=CadefubiPeer::getDesubicacion($this->getRequestParameter('codigo'));	  			 
            $output = '[["'.$cajtexmos.'","'.$dato.'",""]]';		 			 	    
	    } 	    		  	    

  	    $this->getResponse()->setHttpHeader("X-JSON", '('.$output.')'); 
	    return sfView::HEADER_ONLY;
	}	 

Herramientas personales
Espacios de nombres
Variantes
Acciones
Navegación
Herramientas