Foros del Web » Programando para Internet » PHP »

Guardar valor en un hidden para utilizar de nuevo

Estas en el tema de Guardar valor en un hidden para utilizar de nuevo en el foro de PHP en Foros del Web. Saludos! Tengo una página de lista clientes Código PHP: <?php function  generaClientes () {      $c             =     mysql_connect ( "localhost" , "root" , "" );         ...
  #1 (permalink)  
Antiguo 22/04/2013, 02:02
Avatar de the_sheriff_pino  
Fecha de Ingreso: abril-2013
Ubicación: Córdoba
Mensajes: 118
Antigüedad: 11 años
Puntos: 0
Guardar valor en un hidden para utilizar de nuevo

Saludos!
Tengo una página de lista clientes
Código PHP:
<?php
function generaClientes()
{

    
$c            =    mysql_connect("localhost","root","");        //Conexión con el servidor
    
$db            =    mysql_select_db("clientes",$c);                //Conexión con la base de datos
    
$consulta    =    mysql_query("SELECT * FROM tabla");        //Consulta para mostrar los productos


?>
     
    <select name='clientes' size="5px">
    <option value='0'>Elige un cliente...</option>
    
    <?php 
    
while($registro=mysql_fetch_assoc($consulta))
    {
?>
        <option value="<?php echo $registro['Nombre']; ?>"><?php echo $registro['Nombre']; ?></option>
    <?php 
    
}
    
?>
    
    </select>
<?php 
}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>Pedidos</title>
</head>

<body>
    <div align="center">
    <form action="pedidos.php" method="post">
        <?php generaClientes(); ?>
        <input type="submit" name="nuevo_pedido" value="Nuevo Pedido" />
            
    </form></div>
que manda el cliente seleccionado de una lista a una página de pedidos
Código PHP:
<?php
function generaClientes()
{
    
    
$c            =    mysql_connect("localhost","root","");        //Conexión con el servidor
    
$db            =    mysql_select_db("clientes",$c);                //Conexión con la base de datos
    
$consulta    =    mysql_query("SELECT * FROM productos");        //Consulta para mostrar los productos
?>    
     Seleccione el producto:
     <br />
    <select name='productos' size="5px">
    
    <?php 
    
while($registro    =    mysql_fetch_assoc($consulta))
    {
?>
        <option value="<?php echo $registro['nom_producto']; ?>"><?php echo $registro['cod_producto']." ".$registro['nom_producto']; ?></option>
    <?php 
    
}
    
?>
    
    </select>
<?php
}
    
//$clientes=$_POST['clientes'];
    
    
if (isset($_POST['clientes']))
        {
            
$clientes $_POST['clientes'];
        }    else    {
            
$clientes "";
            }
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>Pedidos</title>
</head>

<body>
    
    <div align="center">
    
    Cliente seleccionado:     <?php echo $clientes?>
    
        
        <form action="pedidos.php" method="post">
            
    <br />
    <br />
        <?php generaClientes(); ?>
       <input type="hidden" name="clientes2" value="$clientes">
    <br />
    <br />
                Cantidad
                <input type="text" name="c1" size="5px" autocomplete="off" /> Unidades
    <br />   
    <br />
                Precio
                <input type="text" name="p1" size="3px" value="0,00" autocomplete="off"> Euros
    <br />   
    <br />
                Notas:
    <br />            
                <textarea name="notas" rows="5" cols="20"></textarea>
    <br />
            <input type="submit" name="enviar" value="Enviar" />
            
    </form></div>
    
    <br />
    <br />
    <br />
   
   
<?php
        
//Los siguientes isset se utilizan para que no muestre error antes de insertar los valores.
    
if (isset($_POST['productos']))
        {
            
$producto $_POST['productos'];
        } else { 
        
$producto "";
        }

    
    if (isset(
$_POST['c1'])) 
    {
        
$cantidad $_POST['c1'];
    } else {
        
$cantidad "";
    }


    if (isset(
$_POST['p1'])) 
    {
        
$precio $_POST['p1'];
    } else {
        
$precio "";
    }
    
    
    if (isset(
$_POST['notas'])) 
    {
        
$notas $_POST['notas'];
    } else {
        
$notas "";
    }
    
    
    
//Se obtienen los valores de $cantidad y $producto para su operación.
    
$resultado    $cantidad*$precio;
    
$clientes2    =    $_POST['clientes2'];

    if (isset(
$_POST['enviar']))
    {
?>
        El cliente seleccionado es: <?php echo $clientes2?>
        <br>
        
        EL producto seleccionado es: <?php echo $producto?>
        <br>

        El resultado de la operación es: <?php echo $resultado?>
        <br>

        Las notas escritas por el usuario son: <?php echo $notas?>
    <?php }


?>
</body>
</html>
El proceso es elegir un cliente de una lista_clientes y pulsar en nuevo pedido, que nos llevará a la página de pedidos y se nos muestra: EL cliente seleccionado es $clientes(la elección de la página anterior),; y un formulario simple con cantidad y precio, además de un botón para enviar los resultados a la misma página.
Lo que ocurre que cuando en la página de pedidos, pulso el botón para enviar los datos del formulario, esta se recarga, y la variable clientes no conserva el valor.

Espero su ayuda, gracias y un saludo
  #2 (permalink)  
Antiguo 22/04/2013, 02:20
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Guardar valor en un hidden para utilizar de nuevo

Deberías usar el mismo nombre para el campo... es decir, "clientes", te sobra el 2

Código HTML:
Ver original
  1. <input type="hidden" name="clientes2" value="$clientes">
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 22/04/2013, 02:28
Avatar de the_sheriff_pino  
Fecha de Ingreso: abril-2013
Ubicación: Córdoba
Mensajes: 118
Antigüedad: 11 años
Puntos: 0
Respuesta: Guardar valor en un hidden para utilizar de nuevo

Cita:
Iniciado por Triby Ver Mensaje
Deberías usar el mismo nombre para el campo... es decir, "clientes", te sobra el 2

Código HTML:
Ver original
  1. <input type="hidden" name="clientes2" value="$clientes">
Hola Triby, gracias por contestar!
Modifiqué la línea que me dijiste pero no me muestra ningún valor, tampoco error. te adjunto el código para que le eches un vistazo.
Código PHP:
<?php
function generaClientes()
{
    
    
$c            =    mysql_connect("localhost","root","");        //Conexión con el servidor
    
$db            =    mysql_select_db("clientes",$c);                //Conexión con la base de datos
    
$consulta    =    mysql_query("SELECT * FROM productos");        //Consulta para mostrar los productos
?>    
     Seleccione el producto:
     <br />
    <select name='productos' size="5px">
    
    <?php 
    
while($registro    =    mysql_fetch_assoc($consulta))
    {
?>
        <option value="<?php echo $registro['nom_producto']; ?>"><?php echo $registro['cod_producto']." ".$registro['nom_producto']; ?></option>
    <?php 
    
}
    
?>
    
    </select>
<?php
}
    
//$clientes=$_POST['clientes'];
    
    
if (isset($_POST['clientes']))
        {
            
$clientes $_POST['clientes'];
        }    else    {
            
$clientes "";
            }
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>Pedidos</title>
</head>

<body>
    
    <div align="center">
    
    Cliente seleccionado:     <?php echo $clientes?>
    
        
        <form action="pedidos.php" method="post">
            
    <br />
    <br />
        <?php generaClientes(); ?>
       <input type="hidden" name="clientes" value="<? echo $clientes;?>" >
    <br />
    <br />
                Cantidad
                <input type="text" name="c1" size="5px" autocomplete="off" /> Unidades
    <br />   
    <br />
                Precio
                <input type="text" name="p1" size="3px" value="0,00" autocomplete="off"> Euros
    <br />   
    <br />
                Notas:
    <br />            
                <textarea name="notas" rows="5" cols="20"></textarea>
    <br />
            <input type="submit" name="enviar" value="Enviar" />
            
    </form></div>
    
    <br />
    <br />
    <br />
   
   
<?php
        
//Los siguientes isset se utilizan para que no muestre error antes de insertar los valores.
    
if (isset($_POST['productos']))
        {
            
$producto $_POST['productos'];
        } else { 
        
$producto "";
        }

    
    if (isset(
$_POST['c1'])) 
    {
        
$cantidad $_POST['c1'];
    } else {
        
$cantidad "";
    }


    if (isset(
$_POST['p1'])) 
    {
        
$precio $_POST['p1'];
    } else {
        
$precio "";
    }
    
    
    if (isset(
$_POST['notas'])) 
    {
        
$notas $_POST['notas'];
    } else {
        
$notas "";
    }
    
    
    
//Se obtienen los valores de $cantidad y $producto para su operación.
    
$resultado    $cantidad*$precio;
    
$clientes2    =    $_POST['clientes'];

    if (isset(
$_POST['enviar']))
    {
?>
        El cliente seleccionado es: <?php echo $clientes2?>
        <br>
        
        EL producto seleccionado es: <?php echo $producto?>
        <br>

        El resultado de la operación es: <?php echo $resultado?>
        <br>

        Las notas escritas por el usuario son: <?php echo $notas?>
    <?php }


?>
</body>
</html>
  #4 (permalink)  
Antiguo 22/04/2013, 03:44
Avatar de the_sheriff_pino  
Fecha de Ingreso: abril-2013
Ubicación: Córdoba
Mensajes: 118
Antigüedad: 11 años
Puntos: 0
Respuesta: Guardar valor en un hidden para utilizar de nuevo

Y con una sesión?
  #5 (permalink)  
Antiguo 22/04/2013, 09:28
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: Guardar valor en un hidden para utilizar de nuevo

Cita:
Iniciado por Triby Ver Mensaje
Deberías usar el mismo nombre para el campo... es decir, "clientes", te sobra el 2

Código HTML:
Ver original
  1. <input type="hidden" name="clientes2" value="$clientes">
Bueno recuerda que hay que imprimirlo con un echo.

Código PHP:
Ver original
  1. <?php echo $clientes; ?>
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Etiquetas: formulario, hidden, html, mysql, registro, resultados, select, sql, tabla, valor
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 13:55.