Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/11/2011, 15:28
Avatar de vanegasjd
vanegasjd
 
Fecha de Ingreso: octubre-2011
Ubicación: Armenia, Quindio
Mensajes: 20
Antigüedad: 13 años, 2 meses
Puntos: 0
Dos Formularios en una vista Zend

Saludos a Todos;

Bueno ahora sigo trabajando con formulario.

El problema Es que tengo dos tablas:

1. Solicitud de Materiales

2. Detalles de Materiales

y he creado para cada una de las tablas un Formulario con sus respectivas acciones
(Agregar,Editar,Eliminar,)

Primer form solicitud de material
Código PHP:
Ver original
  1. <?php
  2. class Form_Solicitudmaterial extends Zend_Form{
  3.  
  4.     public function __construct($options = null){
  5.         parent::__construct($options);
  6.  
  7.         $this->setName('solicitudmaterial');
  8.         $id = new Zend_Form_Element_Hidden('idsolicitudesMaterial');
  9.        
  10.         //validaciones
  11.         $valcampo = new Zend_Validate_NotEmpty();
  12.         $valcampo->setMessage("Este valor es requerido y no puede estar vacio", Zend_Validate_NotEmpty::IS_EMPTY);
  13.  
  14.         //Campo de Fecha
  15.         $fecha = new Zend_Form_Element_Text('fechaS');
  16.         $fecha->setLabel('Fecha')
  17.         ->setRequired(true)
  18.         ->addFilter('StripTags')
  19.         ->addFilter('StringTrim')
  20.         ->addValidator($valcampo);
  21.         $filtro= new Zend_Filter_StringToUpper();
  22.         $fecha->addFilter($filtro);        
  23.        
  24.        
  25.  
  26.         //Campo de SitioPractica
  27.         $sitiopractica = new Zend_Form_Element_Text('sitioPractica');
  28.         $sitiopractica->setLabel('Práctica')
  29.         ->setRequired(true)
  30.         ->addFilter('StripTags')
  31.         ->addFilter('StringTrim')
  32.         ->addValidator($valcampo);
  33.        
  34.         //Se llama al campo usuario por medio de su id
  35.         $idusuarios = new Zend_Form_Element_Select('idusuarios');
  36.         $idusuarios->setLabel('Usuario')
  37.         ->setRequired(true);
  38.  
  39.         $table = new usuariosModel();
  40.         foreach ($table->actualizar() as $c)
  41.         {
  42.         $idusuarios->addMultiOption($c->idusuarios, $c->nombres);
  43.         }          
  44.        
  45.         //Se llama al campo formaciones por medio de su id
  46.         $idformaciones = new Zend_Form_Element_Select('idformaciones');
  47.         $idformaciones->setLabel('Formación')
  48.          ->setRequired(true);
  49.  
  50.         $table = new FormacionesModel();
  51.         foreach ($table->actualizar1() as $f)
  52.         {
  53.         $idformaciones->addMultiOption($f->idformaciones, $f->nombre);
  54.         }
  55.        
  56.        
  57.         //un select donde se seleccionara un Estado Solicitud
  58.         $idestadossolicitud = new Zend_Form_Element_Select('idestadossolicitud');
  59.         $idestadossolicitud->setLabel('estados')
  60.         //->setValue(1)
  61.         ->setRequired(true);
  62.         $rol=2;
  63.         if ($rol == 1){
  64.         $estado= new estadossolicitudesModel();
  65.         foreach ($estado->seleccion() as $h)
  66.         {
  67.             $idestadossolicitud->addMultiOption($h->idestadossolicitudes,$h->estado);
  68.         }
  69.         }
  70.         else
  71.         {
  72.         $idestadossolicitud = new Zend_Form_Element_Hidden('idestadossolicitud');
  73.         $idestadossolicitud->setLabel('')
  74.         ->setValue(1);
  75.         }      
  76.  
  77.         //Definimos el boton de envio del formulario por defecto
  78.         $submit = new Zend_Form_Element_Submit('submit');
  79.         $submit->setAttrib('id', 'submit');
  80.         $this->addElements(array($id, $fecha, $sitiopractica,$idusuarios,$idformaciones,$idestadossolicitud,$submit));
  81.     }
  82. }


Segundo form de detalles de materiales:

Código PHP:
Ver original
  1. <?php
  2.  class Form_Detalles extends Zend_Form{  
  3.    
  4.      public function __construct($options = null){  
  5.          parent::__construct($options);  
  6.    
  7.          $this->setName('detalles');  
  8.          $id = new Zend_Form_Element_Hidden('iddetallesSolicitudHerramientas');  
  9.  
  10.          //validaciones
  11.          $valnum = new Zend_Validate_Digits();
  12.          $valnum->setMessage("Por favor Ingresar solamente caracteres numericos", Zend_Validate_Digits::NOT_DIGITS);
  13.          $valnum->setMessage("Por favor Ingresar solamente caracteres numericos", Zend_Validate_Digits::STRING_EMPTY);
  14.          
  15.          $valcampo = new Zend_Validate_NotEmpty();
  16.          $valcampo->setMessage("Este valor es requerido y no puede estar vacio", Zend_Validate_NotEmpty::IS_EMPTY);
  17.          
  18.          //Campo de Usuario
  19.          $usuario = new Zend_Form_Element_Select('usuarios');  
  20.          $usuario->setLabel('Usuarios')  
  21.          ->setRequired(true) ;
  22.          $table = new usuariosModel();
  23.          foreach ($table->actualizar() as $c)
  24.          {
  25.             $usuario->addMultiOption($c->idusuarios, $c->nombres);
  26.          }    
  27.          
  28.          //Campo de Fecha
  29.          $fecha = new Zend_Form_Element_Text('fecha');  
  30.          $fecha->setLabel('Fecha')  
  31.         ->setRequired(true)  
  32.          ->addFilter('StripTags')  
  33.         ->addFilter('StringTrim')  
  34.          ->addValidator($valcampo);
  35.          $filtro= new Zend_Filter_StringToUpper();
  36.         $fecha->addFilter($filtro);
  37.    
  38.          //Campo de Cantidad
  39.          $cantidad = new Zend_Form_Element_Text('cantidad');  
  40.          $cantidad->setLabel('Cantidad')  
  41.          ->setRequired(true)  
  42.          ->addFilter('StripTags')  
  43.          ->addFilter('StringTrim')  
  44.          ->addValidator($valcampo)
  45.          ->addValidator($valnum);
  46.  
  47.          //Se llama al campo Herramientas por medio de su id
  48.          $herramientas = new Zend_Form_Element_Select('herramientas');  
  49.          $herramientas->setLabel('Herramienta')  
  50.          ->setRequired(true) ;
  51.          $table = new HerramientasModel();
  52.          foreach ($table->actualizar() as $c)
  53.          {
  54.             $herramientas->addMultiOption($c->idherramientas, $c->nombre);
  55.          }      
  56.  
  57.          //Campo de Recibida
  58.          $recibida = new Zend_Form_Element_Text('cantidadRecibida');          
  59.          $recibida->setLabel('Cant. Recibida')  
  60.          ->setRequired(true)  
  61.          ->addFilter('StripTags')  
  62.          ->addFilter('StringTrim')  
  63.          ->addValidator($valcampo)
  64.          ->addValidator($valnum);  
  65.          
  66.          //Se llama al campo SolicitudHerramienta por medio de su id
  67.          $solicitudherra = new Zend_Form_Element_Select('solicitudherramientas');  
  68.          $solicitudherra->setLabel('Solicitante')  
  69.          ->setRequired(true) ;
  70.          $table = new usuariosModel();
  71.          foreach ($table->actualizar() as $c)
  72.          {
  73.             $solicitudherra->addMultiOption($c->idusuarios , $c->nombres);
  74.          }    
  75.          
  76.          //Campo de Devolucion
  77.          $devolucion = new Zend_Form_Element_Text('fechaEstimadaDevolucion');  
  78.          $devolucion->setLabel('Devolución')  
  79.          ->setRequired(true)  
  80.          ->addFilter('StripTags')  
  81.          ->addFilter('StringTrim')  
  82.          ->addValidator($valcampo);  
  83.          $filtro= new Zend_Filter_StringToUpper();
  84.         $devolucion->addFilter($filtro);
  85.          
  86.          //Definimos el boton de envio del formulario por defecto
  87.          $submit = new Zend_Form_Element_Submit('submit');  
  88.          $submit->setAttrib('iddetallesSolicitudHerramientas', 'submitbutton');  
  89.          $this->addElements(array($id,$usuario, $fecha, $cantidad, $herramientas ,$recibida, $solicitudherra, $devolucion,$submit));  
  90.  
  91.      }  
  92.  
  93.  }  
  94.  
  95.  ?>



Lo que quiero es unir estos dos formularios en una sola vista.

Pero que funcione con un solo Agregar.

un solo boton agregar para los dos.

El problema es que no se como hacerlo.. :/