elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  Guardar valor en un hidden para utilizar de nuevo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Guardar valor en un hidden para utilizar de nuevo  (Leído 4,873 veces)
the_sheriff_pino

Desconectado Desconectado

Mensajes: 42



Ver Perfil
Guardar valor en un hidden para utilizar de nuevo
« en: 22 Abril 2013, 11:02 am »

Saludos!
Tengo una página de lista clientes:
Código
  1. <?php
  2. function generaClientes()
  3. {
  4.  
  5. $c = mysql_connect("localhost","root",""); //Conexión con el servidor
  6. $db = mysql_select_db("clientes",$c); //Conexión con la base de datos
  7. $consulta = mysql_query("SELECT * FROM tabla"); //Consulta para mostrar los productos
  8.  
  9.  
  10. ?>
  11.  
  12. <select name='clientes' size="5px">
  13. <option value='0'>Elige un cliente...</option>
  14.  
  15.    <?php
  16. while($registro=mysql_fetch_assoc($consulta))
  17. {?>
  18. <option value="<?php echo $registro['Nombre']; ?>"><?php echo $registro['Nombre']; ?></option>
  19. <?php
  20. }
  21. ?>
  22.  
  23.    </select>
  24. <?php
  25. }
  26. ?>
  27.  
  28. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  29. <html xmlns="http://www.w3.org/1999/xhtml">
  30. <head>
  31. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  32.  
  33. <title>Pedidos</title>
  34. </head>
  35.  
  36. <body>
  37. <div align="center">
  38. <form action="pedidos.php" method="post">
  39.     <?php generaClientes(); ?>
  40. <input type="submit" name="nuevo_pedido" value="Nuevo Pedido" />
  41.  
  42. </form></div>
  43.    </body></html>

que manda el cliente seleccionado de una lista a una página de pedidos:
Código
  1. <?php
  2. function generaClientes()
  3. {
  4.  
  5.    $c            =    mysql_connect("localhost","root","");        //Conexión con el servidor
  6.    $db            =    mysql_select_db("clientes",$c);                //Conexión con la base de datos
  7.    $consulta    =    mysql_query("SELECT * FROM productos");        //Consulta para mostrar los productos
  8. ?>    
  9.     Seleccione el producto:
  10.     <br />
  11.    <select name='productos' size="5px">
  12.  
  13.    <?php  
  14.    while($registro    =    mysql_fetch_assoc($consulta))
  15.    {?>
  16.        <option value="<?php echo $registro['nom_producto']; ?>"><?php echo $registro['cod_producto']." ".$registro['nom_producto']; ?></option>
  17.    <?php  
  18.    }
  19.    ?>
  20.  
  21.    </select>
  22. <?php
  23. }
  24.    //$clientes=$_POST['clientes'];
  25.  
  26.    if (isset($_POST['clientes']))
  27.        {
  28.            $clientes = $_POST['clientes'];
  29.        }    else    {
  30.            $clientes = "";
  31.            }
  32. ?>
  33.  
  34. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  35. <html xmlns="http://www.w3.org/1999/xhtml">
  36. <head>
  37. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  38.  
  39. <title>Pedidos</title>
  40. </head>
  41.  
  42. <body>
  43.  
  44.    <div align="center">
  45.  
  46.    Cliente seleccionado:     <?php echo $clientes; ?>
  47.  
  48.  
  49.        <form action="pedidos.php" method="post">
  50.  
  51.    <br />
  52.    <br />
  53.        <?php generaClientes(); ?>
  54.       <input type="hidden" name="clientes2" value="$clientes">
  55.    <br />
  56.    <br />
  57.                Cantidad
  58.                <input type="text" name="c1" size="5px" autocomplete="off" /> Unidades
  59.    <br />    
  60.    <br />
  61.                Precio
  62.                <input type="text" name="p1" size="3px" value="0,00" autocomplete="off"> Euros
  63.    <br />    
  64.    <br />
  65.                Notas:
  66.    <br />            
  67.                <textarea name="notas" rows="5" cols="20"></textarea>
  68.    <br />
  69.            <input type="submit" name="enviar" value="Enviar" />
  70.  
  71.    </form></div>
  72.  
  73.    <br />
  74.    <br />
  75.    <br />
  76.  
  77.  
  78. <?php
  79.        //Los siguientes isset se utilizan para que no muestre error antes de insertar los valores.
  80.    if (isset($_POST['productos']))
  81.        {
  82.            $producto = $_POST['productos'];
  83.        } else {  
  84.        $producto = "";
  85.        }
  86.  
  87.  
  88.    if (isset($_POST['c1']))  
  89.    {
  90.        $cantidad = $_POST['c1'];
  91.    } else {
  92.        $cantidad = "";
  93.    }
  94.  
  95.  
  96.    if (isset($_POST['p1']))  
  97.    {
  98.        $precio = $_POST['p1'];
  99.    } else {
  100.        $precio = "";
  101.    }
  102.  
  103.  
  104.    if (isset($_POST['notas']))  
  105.    {
  106.        $notas = $_POST['notas'];
  107.    } else {
  108.        $notas = "";
  109.    }
  110.  
  111.  
  112.    //Se obtienen los valores de $cantidad y $producto para su operación.
  113.    $resultado    = $cantidad*$precio;
  114.    $clientes2    =    $_POST['clientes2'];
  115.  
  116.    if (isset($_POST['enviar']))
  117.    {?>
  118.        El cliente seleccionado es: <?php echo $clientes2; ?>
  119.        <br>
  120.  
  121.        EL producto seleccionado es: <?php echo $producto; ?>
  122.        <br>
  123.  
  124.        El resultado de la operación es: <?php echo $resultado; ?>
  125.        <br>
  126.  
  127.        Las notas escritas por el usuario son: <?php echo $notas; ?>
  128.    <?php }
  129.  
  130.  
  131. ?>
  132. </body>
  133. </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


En línea

Rebélate
the_sheriff_pino

Desconectado Desconectado

Mensajes: 42



Ver Perfil
Re: Guardar valor en un hidden para utilizar de nuevo
« Respuesta #1 en: 22 Abril 2013, 11:42 am »

Y si en vez de un hidden se utiliza una sesion?


En línea

Rebélate
#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.850



Ver Perfil WWW
Re: Guardar valor en un hidden para utilizar de nuevo
« Respuesta #2 en: 22 Abril 2013, 12:27 pm »

Puedes utilizar session y también puedes utilizar hidden. Hidden sigue siendo un input y mientras le des un nombre (name="blabla") PHP lo reconocerá.

Tienes mal estructurado el html. En la lista de clientes no escapes el html. Osease, en las lineas 12,13,18 y 23 escapas el html del PHP.. pero lo sacas antes de declarar el <html> y eso esta mal. Utiliza echo.

Saludos
En línea

the_sheriff_pino

Desconectado Desconectado

Mensajes: 42



Ver Perfil
Re: Guardar valor en un hidden para utilizar de nuevo
« Respuesta #3 en: 22 Abril 2013, 13:00 pm »

donde y como iría el input? o la sesion?
supongo que con un input es más sencillo, pero ya he intentado meterlo sin que diese solucón al problema(seguro que fallo mío).
En línea

Rebélate
the_sheriff_pino

Desconectado Desconectado

Mensajes: 42



Ver Perfil
Re: Guardar valor en un hidden para utilizar de nuevo
« Respuesta #4 en: 22 Abril 2013, 13:28 pm »

Puedes utilizar session y también puedes utilizar hidden. Hidden sigue siendo un input y mientras le des un nombre (name="blabla") PHP lo reconocerá.

Tienes mal estructurado el html. En la lista de clientes no escapes el html. Osease, en las lineas 12,13,18 y 23 escapas el html del PHP.. pero lo sacas antes de declarar el <html> y eso esta mal. Utiliza echo.

Saludos
Ya está cambiado lo que me has dicho, si no te he entendido mal claro.
Donde y como iría el input? o la sesión?
Supongo que con un input es más sencillo, pero ya he intentado meterlo sin que diese solución al problema(seguro que fallo mío).
En línea

Rebélate
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines