Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Problema con button

Estas en el tema de Problema con button en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola que tal! Estoy haciendo un formulario de extension Zend_Form y tengo dos botones uno es un submit y el otro es un button. El ...
  #1 (permalink)  
Antiguo 20/10/2009, 08:46
 
Fecha de Ingreso: septiembre-2009
Mensajes: 27
Antigüedad: 14 años, 7 meses
Puntos: 0
Problema con button

Hola que tal!

Estoy haciendo un formulario de extension Zend_Form y tengo dos botones uno es un submit y el otro es un button. El submit haca la accion $this->setAction('./ejemplo/buscar'); del form que es un buscar. (Esta accion es del controlador ejemplo)

Pero el button que es un enviar a otro formulario tiene lo siquiente: (Esta accion es del controlador ejemplo2)
'onClick' => 'javascript:location.href= "./ejemplo2/otra"',

y monta en el url la accion (./ejemplo2/otra) como debe ser pero no hace nada monta el formulario que esta por el else que es el que se monta cuando el formulario noes valido, es como que si el form no trajeta nada de la pantalla anterior.

la accion es la siguiente:
public function otraAction()
{

$request = $this->getRequest();
$form = new Default_Form_Ejemplo();
if ($this->getRequest()->isPost()) {
if ($form->isValid($request->getPost())) {
$radejemplo = $form->getValue('radejemplo');
$correo = $form->getValue('email');
$direccion = $form->getValue('direccion');
$fecha = $form->getValue('fecha');
$cheejemplo = $form->getElement('cheejemplo')->isChecked(); //valor =1 esta chequeado
$validator = new Zend_Validate_NotEmpty();

if ((!$radejemplo=='natural')OR(!$cheejemplo==1)OR(!$ validator->isValid($correo))OR(!$validator->isValid($direccion))OR(!$validator->isValid($fecha)))
{
echo('Verifique uno de los Campos esta en Blanco.');
$this->_redirect('/ejemplo');
}else
{
$var = $_POST['radejemplo'];
if ($var == 'natural'){
$this->view->form = $form;
$arreValores = $form->getValues();
$form = new Default_Form_Ejemplo2();
$form->removeElement('rif');
$form->setDefaults($arreValores);
$this->view->form = $form;
}else{
$this->view->form = $form;
$arreValores = $form->getValues();
$form = new Default_Form_Ejemplo2();
$form->removeElement('cedula');
$form->setDefaults($arreValores);
$this->view->form = $form;
}//else Nº 2
}//else Nº 1

}//if form
}// if getRecueste
$this->view->form = $form;
}//funcion

Sera porque son acciones de controladores distintos?? Pero si coloco la accion de (./ejemplo2/otra) en el form y el button como submit si hace todo bien y el otro submit como button y pues se daña hace lo mismo que lo anterior.

Y los dos no los puedo colocar como submit porque intentan hacer la misma accion. Uso la version 1.9.3
  #2 (permalink)  
Antiguo 20/10/2009, 09:24
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Problema con button

Mensaje trasladado desde PHP a PHP orientado a objetos
  #3 (permalink)  
Antiguo 20/10/2009, 09:25
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Problema con button

Tu problema viene al usar window.location en tu boton, eso solo redirige la pagina más no envia el contenido del formulario, tienes que usar el evento submit de tu formulario para enviar las variables también.

Saludos.
  #4 (permalink)  
Antiguo 20/10/2009, 10:16
 
Fecha de Ingreso: septiembre-2009
Mensajes: 27
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Problema con button

Por eso mismo si tengo los dos botones como submit los dos buscan a la accion del form y asi no debe ser cada uno tiene que hacer la accion que le corresponde
  #5 (permalink)  
Antiguo 20/10/2009, 10:45
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Problema con button

Lo que pasa esque ese es el comportamiento nativo de los forms, como te comente si quieres redirigir el action del form necesitas usar Javascript pero aún asi tienes que llamar al método submit() del form en Javascript para enviar los valores, el location.href no envia valores.

Revisa algún tutorial de formularios con Javascript y vas a poder hacer lo que te propones.

Saludos.
  #6 (permalink)  
Antiguo 20/10/2009, 10:47
 
Fecha de Ingreso: noviembre-2007
Ubicación: Lanus, Buenos Aires
Mensajes: 178
Antigüedad: 16 años, 5 meses
Puntos: 14
Respuesta: Problema con button

no puedes tener un formulario con dos actions, lo que tienes que hacer es en la pagina que procesa el formulario reconocer que boton fue el que disparo el submit y en base a eso determinar que accion corresponde a cada uno
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 02:29.