Foros del Web » Programando para Internet » PHP » Zend »

Dos Formularios en una vista Zend

Estas en el tema de Dos Formularios en una vista Zend en el foro de Zend en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 22/11/2011, 15:28
Avatar de vanegasjd  
Fecha de Ingreso: octubre-2011
Ubicación: Armenia, Quindio
Mensajes: 20
Antigüedad: 13 años, 1 mes
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.. :/
  #2 (permalink)  
Antiguo 22/11/2011, 15:49
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Dos Formularios en una vista Zend

Ahí lo que te conviene es usar SubForms, ya que por defecto cada Form se renderea de forma independiente con su tag de <form>.

Saludos.
  #3 (permalink)  
Antiguo 23/11/2011, 10:41
Avatar de vanegasjd  
Fecha de Ingreso: octubre-2011
Ubicación: Armenia, Quindio
Mensajes: 20
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Dos Formularios en una vista Zend

No he trabajado con sub form

tal vez tengas un ejemplo por ahi??
  #4 (permalink)  
Antiguo 23/11/2011, 11:04
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Dos Formularios en una vista Zend

En el manual viene bien explicado como usar los SubForms.

Saludos.
  #5 (permalink)  
Antiguo 23/11/2011, 12:50
Avatar de vanegasjd  
Fecha de Ingreso: octubre-2011
Ubicación: Armenia, Quindio
Mensajes: 20
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Dos Formularios en una vista Zend

Cita:
Iniciado por GatorV Ver Mensaje
En el manual viene bien explicado como usar los SubForms.

Saludos.
Gracias..
Donde Puedo encontrar el Manual???
  #6 (permalink)  
Antiguo 23/11/2011, 13:10
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Dos Formularios en una vista Zend

¿es broma? ¿Como haz programado hasta ahora?

Manual: http://framework.zend.com/manual/en/
Zend Form: http://framework.zend.com/manual/en/zend.form.html
Sub Form: http://framework.zend.com/manual/en/...forms.subforms

Saludos.

Etiquetas: formulario, php, select, vistas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:29.