Foros del Web » Programando para Internet » PHP »

Recolección de variable de 2 palabras de select por post

Estas en el tema de Recolección de variable de 2 palabras de select por post en el foro de PHP en Foros del Web. Hola, necesito recolectar el valor de una variable que contiene dos palabras separadas por un espacio pero me trae solo la primera palabra. Este es ...
  #1 (permalink)  
Antiguo 22/12/2011, 09:56
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Pregunta Recolección de variable de 2 palabras de select por post

Hola, necesito recolectar el valor de una variable que contiene dos palabras separadas por un espacio pero me trae solo la primera palabra. Este es el código donde la envio:

Código PHP:
Ver original
  1. <form action="list_amb.php?ambiente=urlenconde(ambiente)" method="get" name="form2" id="form2" >
  2.   <table id="mytable">
  3.     <thead>
  4.     <tr>
  5.     <th colspan="2">CONSULTAR AMBIENTE</th>
  6.         </tr>
  7.     </thead>
  8.     <tbody>
  9.         <tr>
  10.     <td width="49%" height="21">ELEGIR AMBIENTE:</td>
  11.         <td width="51%">
  12.         <select name="ambiente">
  13.         <?php
  14.         $query=("SELECT * FROM ambientes");
  15.         $resultado = mysql_query($query);
  16.         if ($resultado)
  17.             while($renglon = mysql_fetch_array($resultado))
  18.             {
  19.                 $valor=$renglon["ambiente"];
  20.                 echo "<option value=".$valor.">".$valor."</option>\n";
  21.             }
  22.          mysql_close($link);
  23.          ?>
  24.          </select></td>
  25.         <tr>
  26.     <th colspan="2"><input type="submit" name="button" id="button" value="Buscar" /></th>
  27.         </tr>
  28.         <tr>
  29.     <td colspan="2" align="center"><a href="listados.php">Regresar</a></td>
  30.     </tr>
  31.     </tbody>
  32.   </table>
  33. </form>

y aqui lo recibo:

Código PHP:
Ver original
  1. $ambiente = htmlspecialchars(urldecode(($_GET['ambiente'])));
  2.  
  3. echo $ambiente;

pero solo me toma la primera palabra. Las palabras son: Maternal A, Maternal B, etc....

porque no lo esta recibiendo?
__________________
Caminando con el corazón partío
  #2 (permalink)  
Antiguo 22/12/2011, 10:15
 
Fecha de Ingreso: enero-2011
Ubicación: Maracaibo
Mensajes: 179
Antigüedad: 13 años, 3 meses
Puntos: 2
Respuesta: Recolección de variable de 2 palabras de select por post

Por que no manejas el reglon por ID?? es decir en tu tabla debes tener un campo ID para cada Registro, prueba haciendo esto:

Código PHP:
Ver original
  1. <?php
  2.             $query=("SELECT * FROM ambientes");
  3.             $resultado = mysql_query($query);
  4.             if ($resultado){
  5.                 while($renglon = mysql_fetch_array($resultado))
  6.                 {
  7.                    // $valor=$renglon["ambiente"];
  8.                     echo "<option value=".$renglon['ID'].">".$renglon["ambiente"]."</option>\n";
  9.                 }
  10.             }
  11.              mysql_close($link);
  12.              ?>

De esta Manera recibes el ID y como es un dato unico podras manejar todo atra vez de ese valor, tambien le coloque la llaves en el IF abre y cierra {}.

Prueba y comentas

saludos
  #3 (permalink)  
Antiguo 22/12/2011, 10:22
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Recolección de variable de 2 palabras de select por post

gracias por responder pero lo coloqué como me indicas y no me muestra nada. De la forma que lo tengo si lo muestra pero el unico detalle es que solo me trae una palabra y no las dos palabras. La variable guarda esto: Maternal A y solo me trae Maternal.
__________________
Caminando con el corazón partío
  #4 (permalink)  
Antiguo 22/12/2011, 10:38
 
Fecha de Ingreso: enero-2011
Ubicación: Maracaibo
Mensajes: 179
Antigüedad: 13 años, 3 meses
Puntos: 2
Respuesta: Recolección de variable de 2 palabras de select por post

kimmy recuerda que el id es el nombre del campo, es decir:

Código PHP:
Ver original
  1. <option value=".$renglon['campo_id_de_tu_bd'].">

luego cuando lo recibes, cuando haces:

Código PHP:
Ver original
  1. echo $ambiente;

de mostrar el ID asociado a Materna A por ejemplo, luego podrias hacer otro select que te muestre el valor asociado a esa ID, por ejemplo

Código PHP:
Ver original
  1. $ambiente = htmlspecialchars(urldecode(($_GET['ambiente'])));
  2.        
  3.        $amb="SELECT * FROM ambiente WHERE tu_campo_id = '$ambiente'";
  4.         $result = mysql_query($amb);
  5.        
  6.         echo $result;

No probe pero te deberia andar asi, la rutina la puedes modificar, lo hice rapido, quizas tenga algun error pero ahi tienes la idea

saludos
  #5 (permalink)  
Antiguo 22/12/2011, 10:52
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Recolección de variable de 2 palabras de select por post

gracias lo coloqué como me indicas pero sigue sin mostrarme la segunda palabra...
__________________
Caminando con el corazón partío
  #6 (permalink)  
Antiguo 22/12/2011, 18:26
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Recolección de variable de 2 palabras de select por post

Ahora coloque esto en el form:

Código PHP:
Ver original
  1. <form action="list_amb.php?ambiente="<?php echo urlencode($ambiente); ?>" method="get" name="form2" id="form2" >

y lo recogo asi:

Código PHP:
Ver original
  1. $ambiente = htmlspecialchars(urldecode(($_GET['ambiente'])));

y en la barra de dirección me aparece:

http://localhost:8080/phpmyadmin/pre...&button=Buscar

y nada, solo trae una palabra...
__________________
Caminando con el corazón partío
  #7 (permalink)  
Antiguo 22/12/2011, 19:58
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: Recolección de variable de 2 palabras de select por post

Entonces, si seleccionas Maternal A recibes sólo Maternal? o quieres recibir varios valores del mismo select?... si este es el caso, entonces necesitarás agregar el atributo multiple="multiple" para ese select.

Luego:
<form action="list_amb.php?ambiente=urlenconde(ambiente)" method="get" name="form2" id="form2" >

No deberías incluir variables en la URL del action, porque serán eliminadas al procesar el formulario.
__________________
- León, Guanajuato
- GV-Foto
  #8 (permalink)  
Antiguo 22/12/2011, 20:06
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Recolección de variable de 2 palabras de select por post

Solo necesito recibir el valor seleccionado del select que se carga con la consulta a la BD. Por ejemplo Maternal A. Lo coloqué como me indicaste pero igual me muestra solo Maternal. Será que mi máquina no sirve????
__________________
Caminando con el corazón partío
  #9 (permalink)  
Antiguo 22/12/2011, 20:11
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: Recolección de variable de 2 palabras de select por post

No, el problema es que no estás poniendo comillas correctamente.

Esto:
echo "<option value=".$valor.">".$valor."</option>\n";

En el navegador se vería:
<option value=Maternal A>Maternal A</option>

En el otro tema estás manejando mucho HTMl entre comillas dobles, agregando y escapando correctamente las comillas en valores de atributos, no entiendo porqué aquí no haces lo mismo.
__________________
- León, Guanajuato
- GV-Foto
  #10 (permalink)  
Antiguo 23/12/2011, 08:03
 
Fecha de Ingreso: enero-2011
Ubicación: Maracaibo
Mensajes: 179
Antigüedad: 13 años, 3 meses
Puntos: 2
Respuesta: Recolección de variable de 2 palabras de select por post

kimmy intenta enviar los datos por POST en vez de GET y en el action solo colocas el archivo donde va a recibir la variable que envias por POST, es decir:

Código PHP:
Ver original
  1. <form action="list_amb.php" method="POST" name="form2" id="form2" >

y luego aplicas lo que explique mas arriba a ver si asi te funciona

Prueba y comentas
  #11 (permalink)  
Antiguo 23/12/2011, 08:28
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Recolección de variable de 2 palabras de select por post

Muchas gracias mixzplit, pero ya lo había intentado y tampoco funciona. No entiendo porque si anteriormente en otra pagina que realice me funcionaba perfectamente con el get pero ahora por más que lo hago no recoge las dos palabras....
__________________
Caminando con el corazón partío
  #12 (permalink)  
Antiguo 23/12/2011, 08:37
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Recolección de variable de 2 palabras de select por post

Ya lo solucioné. Efectivamente es lo que me indicó Triby un mal manejo de las comillas en esta parte:

Código PHP:
Ver original
  1. echo "<option value='$valor'>".$valor."</option>\n";

Gracias Triby!!!
__________________
Caminando con el corazón partío

Etiquetas: html, mysql, palabras, post, select, 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 14:02.