Foros del Web » Programando para Internet » PHP »

mas de un submit en mismo formulario

Estas en el tema de mas de un submit en mismo formulario en el foro de PHP en Foros del Web. Se que este post esta creado pero no es del todo igual... Lo que quiero hacer es lo siguiente: En un formulario tengo 3 radio ...
  #1 (permalink)  
Antiguo 06/03/2012, 12:31
 
Fecha de Ingreso: diciembre-2011
Mensajes: 151
Antigüedad: 12 años, 4 meses
Puntos: 1
mas de un submit en mismo formulario

Se que este post esta creado pero no es del todo igual...

Lo que quiero hacer es lo siguiente:


En un formulario tengo 3 radio button. Con el evento onclick en cada uno de ellos. Quiero que al pusar en alguno de los radio button se envien los datos de ese radio button a la misma pagina donde tengo el formulario para asi poder hacer un echo con esos datos (no se como poner esta parte... Querria imprimir, debajo del formulario los detalles del carrito de la compra).

Una vez seleccionado un radio button. Al hacer click en el boton submit. Enviar los datos del formulario (que radio esta checked) a otra pagina (carrito_finalizacion.php)

No se si lo explique bien del todo...

Pongo una foto:



Tengo este codigo pero no me fuciona 100% como quisiera:

Código PHP:
Ver original
  1. if (isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER'] == 'http://localhost/zulo/carrito_forma_pago.php' && ($_POST != null))
  2. {
  3.     if ($_POST["radio"] == 1) {
  4.     echo "has elegido el metodo de pago ".TextoTipoPago($_POST["radio"]); }
  5.    
  6.     if ($_POST["radio"] == 2) {
  7.     echo "has elegido el metodo de pago ".TextoTipoPago($_POST["radio"]); }
  8.    
  9.     if ($_POST["radio"] == 3) {
  10.     echo "has elegido el metodo de pago ".TextoTipoPago($_POST["radio"]); }
  11.    
  12.     if ($_POST["button"]) {
  13.      header('Location: carrito_finalizacion.php'); }
  14.     }
  15.  
  16. ?>

Fomulario:
Código PHP:
Ver original
  1. <p>Selecciona la forma de pago:</p>
  2.        <form id="form1" name="form1" method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
  3.          <p>
  4.       <input name="radio" type="radio" id="radio" value="1" checked="checked" onclick="this.form.submit();" />
  5.       <label for="radio">Contra reembolso <?php echo $_SESSION["totalcompra"] + 8; ?>€</label><br />
  6.        
  7.           <input type="radio" name="radio" id="radio" value="2" onclick="this.form.submit();" />
  8.           <label for="radio">Transferencia</label><br />
  9.          
  10.        
  11.          
  12.          
  13.        
  14.           <input type="radio" name="radio" id="radio" value="3" onclick="this.form.submit();"/>
  15.           <label for="radio">PayPal</label><br />
  16.         </p>
  17.      
  18.       <p>
  19.       <input type="submit" name="button" id="button" value="Pagar" />
  20.         </p>
  21.         </form>

Gracias de antemano !
  #2 (permalink)  
Antiguo 06/03/2012, 13:04
 
Fecha de Ingreso: febrero-2012
Mensajes: 21
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: mas de un submit en mismo formulario

Hola Nobo

Creo que me revolvi un poco...

Podrias decirme que es lo que no hace? y quieres que haga.

Espero poder ayudarte
  #3 (permalink)  
Antiguo 06/03/2012, 14:25
 
Fecha de Ingreso: diciembre-2011
Mensajes: 151
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: mas de un submit en mismo formulario

Si claro.. A ver al darle (seleccionar) a un radio es decir un metodo de pago. Me gustaria que debajo tal y como sale en la foto... Saliese un resumen del carrito. O simplemente que haga un echo el tema del carrito ya lo hare yo.

Y luego una vez seleccionado un radio. Que al pulsar el boton Pagar (button) envie el formulario a otra pagina (carrito_finalizacion.php)

No se como explicarlo mejor :S Cualquier duda preguntame ;)
  #4 (permalink)  
Antiguo 06/03/2012, 14:31
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: mas de un submit en mismo formulario

Aunque técnicamente es posible lo que pides, sería mucho mejor si el resumen del carrito lo implementas por ajax, para no tener que enviar los datos a otra página (aunque sea la misma). En cualquier caso (ajax o no) necesitas manejar javascript, para que al seleccionar el radio se envíen los datos.
  #5 (permalink)  
Antiguo 06/03/2012, 14:41
 
Fecha de Ingreso: diciembre-2011
Mensajes: 151
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: mas de un submit en mismo formulario

Se envian con el onclick, no ?
onclick="this.form.submit();"
  #6 (permalink)  
Antiguo 06/03/2012, 15:53
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: mas de un submit en mismo formulario

Es mejor como te dice ocp001a, ya que al usar AJAX no tienes que recargar la pagina, aparte de que cuando haces la redirección como lo tienes en tu código no se transmiten las variables por POST, por lo que la forma más limpia de hacerlo es usando AJAX.

Saludos.
  #7 (permalink)  
Antiguo 07/03/2012, 03:07
 
Fecha de Ingreso: diciembre-2011
Mensajes: 151
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: mas de un submit en mismo formulario

Ajá... Lo que pasa que yo de AJAX.... Como seria? Algun ejemplo o algo?
  #8 (permalink)  
Antiguo 07/03/2012, 05:34
 
Fecha de Ingreso: febrero-2012
Ubicación: En mi propio mundo
Mensajes: 73
Antigüedad: 12 años, 2 meses
Puntos: 23
Respuesta: mas de un submit en mismo formulario

Como ya le explique a nobo por privado, para la gente que esta empezando con php no es recomendable ponerse con ajax, porque aun no entiende bien como se realizan las peticiones al servidor.

En cuanto lo que quiere hacer nobo se puede resolver con sessiones.

Añade una variable de sesion llamada radio por ejemplo, asi cuando envíes el form a carrito_finalizacion.php la puedes recoger facilmente con $_SESSION["radio"]

Código PHP:
if ( (isset($_SERVER['HTTP_REFERER'])) and ($_SERVER['HTTP_REFERER'] == 'http://localhost/zulo/carrito_forma_pago.php' ))
{
    switch (
$_POST["radio"]) {
        case 
1:$_SESSION["radio"] = 1;break;
        case 
2:$_SESSION["radio"] = 2;break;
        case 
3:$_SESSION["radio"] = 3;break;
    }
    echo 
"has elegido el metodo de pago ".TextoTipoPago($_POST["radio"]); 
    if ( isset(
$_POST["button"]) )
    {
        
header('Location: carrito_finalizacion.php');
    }



Y para que un radio esté checked según el radio que hayas seleccionado

Código HTML:
Ver original
  1. <form id="form1" name="form1" method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
  2.         <p>
  3.        <?php
  4.        if ( isset($_SESSION["radio"]) && $_SESSION["radio"]==1 )
  5.        {
  6.            echo '<input name="radio" type="radio" id="radio" value="1" checked="checked" onclick="this.form.submit();" />';
  7.         } else
  8.         {
  9.             echo  '<input name="radio" type="radio" id="radio" value="1" onclick="this.form.submit();" />';
  10.         }
  11.        ?>
  12.         <label for="radio">Contra reembolso <?php echo $_SESSION["totalcompra"] + 8; ?></label><br />
  13.    
  14.     <?php
  15.        if ( isset($_SESSION["radio"]) && $_SESSION["radio"]== 2 )
  16.        {
  17.            echo '<input name="radio" type="radio" id="radio" value="2" checked="checked" onclick="this.form.submit();" />';
  18.         } else
  19.         {
  20.             echo  '<input name="radio" type="radio" id="radio" value="2" onclick="this.form.submit();" />';
  21.         }
  22.        ?>
  23.         <label for="radio">Transferencia</label><br />
  24.        
  25.        <?php
  26.        if ( isset($_SESSION["radio"]) && $_SESSION["radio"]==3 )
  27.        {
  28.            echo '<input name="radio" type="radio" id="radio" value="3" checked="checked" onclick="this.form.submit();" />';
  29.         } else
  30.         {
  31.             echo  '<input name="radio" type="radio" id="radio" value="3" onclick="this.form.submit();" />';
  32.         }
  33.        ?>
  34.         <label for="radio">PayPal</label><br />
  35.         </p>
  36.  
  37.         <p>
  38.             <input type="submit" name="button" id="button" value="Pagar" />
  39.         </p>
  40. </form>
  #9 (permalink)  
Antiguo 07/03/2012, 06:04
 
Fecha de Ingreso: diciembre-2011
Mensajes: 151
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: mas de un submit en mismo formulario

Habra que retocar un poco el form.. :P

Etiquetas: formulario, submit
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:52.