Foros del Web » Programando para Internet » PHP »

Mostrar valores de textbox seleccionados

Estas en el tema de Mostrar valores de textbox seleccionados en el foro de PHP en Foros del Web. Hola: Tengo un problema con esto. Yo tengo un form que recolecta una cantidad de opciones que puede seleccionar el cliente a través de checkbox ...
  #1 (permalink)  
Antiguo 18/07/2011, 18:56
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Mostrar valores de textbox seleccionados

Hola:

Tengo un problema con esto. Yo tengo un form que recolecta una cantidad de opciones que puede seleccionar el cliente a través de checkbox y su respectiva caja de texto para colocar la cantidad. Lo que seleccione se guarda en una variable de sesion y al final debo mostrar cuales opciones eligio de check y de textbox. Este es el form donde coloca los datos que se alimenta de una bd:

Código PHP:
Ver original
  1. <form name="form3" action="cotizacion.php?page=cotizacion_3" method="post">
  2. <table width="600">
  3.   <tr>
  4.     <td width="300">
  5.  
  6.  <table width="300">
  7.  <tr>
  8. <th colspan="3"><center>Alimentos</center></th>
  9. </tr>
  10. <?php echo "
  11.  <td width=\"150\">Producto</td>
  12.  <td width=\"100\">Seleccionar</td>  
  13.  <td width=\"150\">Cantidad</td>  
  14.  </tr>
  15.  <tr>";
  16.     $rs = mysql_query("SELECT * FROM xxxx where categoria='alimentos'");
  17.     while ($result = mysql_fetch_array($rs)) {
  18.     $categoria = $result['categoria'];
  19.     $alim = $result['alim'];
  20. echo
  21. "          
  22.   <td>$producto_alim</td>
  23.   <td><input name=\"alimentos[]\" type=\"checkbox\" value=\"$alim\"></td>
  24.   <td><input name=\"ctdad_alimentos[]\" type=\"text\" value=\"\" size=\"3\"></td>    
  25.   </tr>"; }?>
  26.     </table>
  27.  
  28. <td width="300"><table width="300">
  29. <tr>
  30. <th colspan="3"><center>Bebidas</center></th>
  31. </tr>
  32. <?php echo
  33. "
  34.  <tr>
  35.  <td width=\"150\">Producto</td>
  36.  <td width=\"100\">Seleccionar</td>  
  37.  <td width=\"150\">Cantidad</td>  
  38.  </tr>
  39.  <tr>";
  40.     $rs = mysql_query("SELECT * FROM xxxxxx where categoria='bebidas'");
  41.     while ($result = mysql_fetch_array($rs)) {
  42.     $categoria = $result['categoria'];
  43.     $bebidas = $result['producto'];
  44. echo
  45. "          
  46.   <td>$producto_bebidas</td>
  47.   <td><input name=\"bebidas[]\" type=\"checkbox\" value=\"$bebidas\"></td>
  48.   <td><input name=\"ctdad_bebidas[]\" type=\"text\" value=\"\" size=\"3\"></td>    
  49.   </tr>
  50.  ";
  51. }
  52. ?>
  53.     </table></td></td>
  54.   </tr>
  55. </table>
  56. <label>
  57.     <p align="center">
  58.     <input name="regresar" type="button" value="Atras" onclick="location.href='cotizacion.php?page=cotizacion_1'">
  59.     <input name="siguiente" type="submit" value="Siguiente">
  60.         <input name="salir" type="button" value="Salir" onclick="location.href='index2.php'">
  61.     </p>
  62.    </label>
  63. </form>

y en este otro muestro lo recolectado con $_SESSION['variables1']=$_POST;:

Código PHP:
Ver original
  1. <tr>
  2.    <td>Alimentos</td>
  3.    <td><?php
  4.    if (isset($_SESSION['variables1']['alimentos'])) {
  5. foreach($_SESSION['variables1']['alimentos'] as $v)
  6.   {
  7.     echo "<input name=\"alimentos\" value=\"$v\" readonly=\"readonly\">";  
  8.    echo "<br>";
  9.   }
  10.    }
  11.   else {
  12.        echo "No hay Datos";}
  13. ?> </td>
  14. <td>Cantidad:</td>
  15. <td>
  16.    <?php
  17.       if (isset($_SESSION['variables1']['ctdad_alimentos'])) {
  18.  
  19.  foreach($_SESSION['variables1']['ctdad_alimentos'] as $v)
  20.   {
  21.     echo "<input name=\"ctdad_alimentos\" value=\"$v\" readonly=\"readonly\">";  
  22.    echo "<br>";
  23.   }}
  24.    else {
  25.        echo "No hay Datos";
  26.        }
  27. ?></td>
  28.  </tr>  
  29.  <tr>  
  30.    <td>Bebidas</td>
  31.    <td><?php
  32.    if (isset($_SESSION['variables2']['bebidas'])) {
  33.  foreach($_SESSION['variables2']['bebidas'] as $v)
  34.   {
  35.     echo "<input name=\"bebidas[]\" value=\"$v\" readonly=\"readonly\">";  
  36.    echo "<br>";
  37.   }
  38.    }
  39.    else {
  40.        echo "No hay Datos";
  41.        }
  42. ?></td>

El problema es que como existen 20 categorias de bebidas por ejemplo al mostrar la cantidad me trae todos los input text y no los que el cliente seleccionó.

He probado de distintas formas pero no se como arreglar esto.

Por favor pueden darme una ayudita para entender. Gracias.
__________________
Caminando con el corazón partío
  #2 (permalink)  
Antiguo 19/07/2011, 02:20
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: Mostrar valores de textbox seleccionados

Buenas,

Una preguntita: por qué utilizas SESSION? Si los valores te vienen directamente del form, por qué no usas simplemente $_POST?

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #3 (permalink)  
Antiguo 19/07/2011, 07:42
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Mostrar valores de textbox seleccionados

Hola, utilizo SESSION porque voy pasando de un formulario a otro (5 form) para que al final me traiga todos los datos que el usuario ingreso en cada uno.
__________________
Caminando con el corazón partío
  #4 (permalink)  
Antiguo 19/07/2011, 08:12
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Mostrar valores de textbox seleccionados

el problema lo tengo aqui:

Código PHP:
Ver original
  1. if (isset($_SESSION['variables2']['bebidas'])) {
  2.  foreach($_SESSION['variables2']['bebidas'] as $v)
  3.   {
  4.     echo "<input name=\"bebidas[]\" value=\"$v\" readonly=\"readonly\">";  
  5.    echo "<br>";
  6.   }
  7.    }
  8.    else {
  9.        echo "No hay Datos";
  10.        }

porque esta dejando pasar todos los textbox y solo necesito los que tengan un valor.

Cómo le digo esto??
__________________
Caminando con el corazón partío
  #5 (permalink)  
Antiguo 19/07/2011, 08:19
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: Mostrar valores de textbox seleccionados

La verdad no entiendo muy bien, pero si deseas almacenar los datos del formulario en una variable, entonces deberias tomarlos desde el POST y guardarlos en la variable de sesion:

Código PHP:
Ver original
  1. if (isset($_POST['siguiente'])){ // si POST existe
  2. $_SESSION['variable'] = $_POST['dato']; // almaceno el dato del post en una variable de sesion
  3. }
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #6 (permalink)  
Antiguo 19/07/2011, 08:22
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Mostrar valores de textbox seleccionados

Hola jotaincubus. Los datos ya los almaceno. Al hacer var_dump($_SESSION['variables2']['ctdad_bebidas']); me trae esto:

array(34) { [0]=> string(3) "100" [1]=> string(0) "" [2]=> string(0) "" [3]=> string(0) "" [4]=> string(0) "" [5]=> string(0) "" [6]=> string(0) "" [7]=> string(0) "" [8]=> string(0) "" [9]=> string(0) "" [10]=> string(0) "" [11]=> string(0) "" [12]=> string(0) "" [13]=> string(0) "" [14]=> string(0) "" [15]=> string(0) "" [16]=> string(0) "" [17]=> string(0) "" [18]=> string(0) "" [19]=> string(0) "" [20]=> string(0) "" [21]=> string(0) "" [22]=> string(0) "" [23]=> string(0) "" [24]=> string(0) "" [25]=> string(0) "" [26]=> string(0) "" [27]=> string(0) "" [28]=> string(0) "" [29]=> string(0) "" [30]=> string(0) "" [31]=> string(0) "" [32]=> string(0) "" [33]=> string(0) "" }

lo cual significa que almacenó tanto el textbox que se llenó como todos los demás que están vacios. Yo lo que quiero es que solo me almacene el que tiene valor pero no se como.
__________________
Caminando con el corazón partío
  #7 (permalink)  
Antiguo 19/07/2011, 09:03
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: Mostrar valores de textbox seleccionados

El tema es el siguiente: si tú tienes 34 inputs tipo text con esta entrada:
<td><input name=\"bebidas[]\" type=\"checkbox\" value=\"$bebidas\"></td>
<td><input name=\"ctdad_bebidas[]\" type=\"text\" value=\"\" size=\"3\"></td>

El resultado es que te almacena los 34 inputs en dos arrays (bebidas y ctdad_bebidas), como bien has visto al imprimirlo. Si no te entiendo mal, lo que quieres hacer es que sólo te rellene los que no están vacíos. Tal y como lo has planteado tú no se puede, ya que el array va a coger los 34 si o si, lo que puedes hacer es que a la hora de tratar los datos, tú mismo compruebes si están vacíos o no. Es decir, pones un if mirando que strlen!=0, en código:
Código PHP:
if (isset($_SESSION['variables2']['ctdad_bebidas'])) {
   foreach(
$_SESSION['variables2']['ctdad_bebidas'] as $v) {
      if (
strlen($v) != 0) {
         echo 
"Este venía relleno";
      } else {
         echo 
"Este NO venía relleno";
      }
   }
} else {
   echo 
"No hay Datos";

En ese código que te he dado, los checkbox sobrarían, ya que con tener los text box te valdría, sólo tratarías los que tuvieran valor. Si lo que quieres es mantener los checkbox, podrías controlar con javascript o con php a la hora de validar el formulario, que sólo los checkbox marcados tuvieran cantidad incluida y, también, que los que tienen cantidad, tuvieran el check marcado, pero me parece innecesario, si se puede hacer como te puse ahí.

Creo que eso es lo que preguntas, o lo que yo entendí al menos, si no, coméntalo y explica mejor. Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #8 (permalink)  
Antiguo 19/07/2011, 18:31
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Mostrar valores de textbox seleccionados

Muchas gracias vgonga1986 funciona muy bien.
__________________
Caminando con el corazón partío
  #9 (permalink)  
Antiguo 20/07/2011, 01:45
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: Mostrar valores de textbox seleccionados

Me alegro, un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?

Etiquetas: mysql, textbox, variables
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 09:42.