Foros del Web » Programando para Internet » PHP »

Variable no definida en 2ª Página

Estas en el tema de Variable no definida en 2ª Página en el foro de PHP en Foros del Web. Saludo compa! Tengo una pequeña duda. Tengo una página lista_clientes.php para seleccionar un cliente de un select, y tras ello un botón ("nuevo pedido") que ...
  #1 (permalink)  
Antiguo 19/04/2013, 05:53
Avatar de the_sheriff_pino  
Fecha de Ingreso: abril-2013
Ubicación: Córdoba
Mensajes: 118
Antigüedad: 11 años
Puntos: 0
Variable no definida en 2ª Página

Saludo compa!
Tengo una pequeña duda.
Tengo una página lista_clientes.php para seleccionar un cliente de un select, y tras ello un botón ("nuevo pedido") que nos lleva a una nueva página pedidos.php.
En ella he puesto que se muestre el cliente seleccionado en la página anterior, con unos cuadro de texto donde insertar el pedido y con un botón que envíe el dato introducido a la misma página para poner algo como echo "El pedido que quiere realizar es " $_POST['pedido'].

El problema está en que cuando pulso el botón para enviar el pedido a la propia página, para que se muestre el pedido realizado, el nombre de cliente desaparece si tiene un isset.

lista_clientes.php
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 
}
?>

[HIGHLIGHT="HTML"]<!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">
        [HIGHLIGHT="PHP"]<?php generaClientes(); ?>[/HIGHLIGHT]
        <input type="submit" name="nuevo_pedido" value="Nuevo Pedido" />
            
    </form></div>[/HIGHLIGHT]
pedidos.php
Código PHP:
<?php
function generaProvincias()
{
    
    
$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
?>    

     
    <select name='productos' size="5px">
    <option value='0'>Elige un producto...</option>
    
    <?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 "";
            }
?>

[HIGHLIGHT="HTML"]<!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 generaProvincias(); ?>
       
    <br />
    <br />
                Cantidad
                <input type="text" name="c1" size="5px" autocomplete="off" /> Unidades
    <br />   
    <br />
                Precio
                <input type="text" name="p1" size="3px" 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 />[/HIGHLIGHT]
   
   
<?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;

    
$clientes=$cliente;

    if (isset(
$_POST['enviar']))
    {
?>
        El cliente seleccionado es: <?php echo $cliente?>
        
        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 }


?>
[HIGHLIGHT="HTML"]</body>
</html>[/HIGHLIGHT]
  #2 (permalink)  
Antiguo 19/04/2013, 06:34
 
Fecha de Ingreso: agosto-2011
Ubicación: Santo Domingo
Mensajes: 487
Antigüedad: 12 años, 8 meses
Puntos: 31
Respuesta: Variable no definida en 2ª Página

Porque no guardas los datos del cliente en sessiones?
__________________
El talento se educa en la KARMA y el carácter en la tempestad.
Gabriel De Los Santos
  #3 (permalink)  
Antiguo 19/04/2013, 06:38
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Variable no definida en 2ª Página

Para poder reenviar un dato que has recibido de una pagina anterior tienes que poner ese dato en un campo del formulario... un truco es ponerlo en el value de un campo oculto.

Recuerda que lo ha recibido php y el nuevo formulario lo manda el cliente.... luego tienes que pasar el dato de php (servidor) al cliente pero en un objeto que el formulario use... si solo lo muestras en el html el formulario no hace nada con el..., o hacerlo persistente en el lado servidor con una variable de sesion p.e

No se si me he explicado.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #4 (permalink)  
Antiguo 19/04/2013, 06:41
Avatar de the_sheriff_pino  
Fecha de Ingreso: abril-2013
Ubicación: Córdoba
Mensajes: 118
Antigüedad: 11 años
Puntos: 0
Respuesta: Variable no definida en 2ª Página

Te has explicado bien, pero de entenderlo a hacerlo...
me supongo que no será muy largo de realizar
  #5 (permalink)  
Antiguo 19/04/2013, 06:42
Avatar de the_sheriff_pino  
Fecha de Ingreso: abril-2013
Ubicación: Córdoba
Mensajes: 118
Antigüedad: 11 años
Puntos: 0
Respuesta: Variable no definida en 2ª Página

Cita:
Iniciado por gldelossantos Ver Mensaje
Porque no guardas los datos del cliente en sessiones?
Porque aún no tengo tanta experiencia, pero gracias por responder!

Etiquetas: html, mysql, página, registro, select, sql, tabla, variable
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 05:12.