Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Seleccionar opción de dropdown con base en un $_POST

Estas en el tema de Seleccionar opción de dropdown con base en un $_POST en el foro de PHP en Foros del Web. Hola, Tengo un <form> con un elemento Dropdown. Cuando hago click en Enviar y obtengo el valor que se seleccionó ($_POST['variable']) quisiera que ese fuera ...
  #1 (permalink)  
Antiguo 16/09/2018, 19:06
Avatar de Threepwood  
Fecha de Ingreso: febrero-2002
Ubicación: Argentina
Mensajes: 906
Antigüedad: 16 años, 10 meses
Puntos: 4
Seleccionar opción de dropdown con base en un $_POST

Hola,

Tengo un <form> con un elemento Dropdown. Cuando hago click en Enviar y obtengo el valor que se seleccionó ($_POST['variable']) quisiera que ese fuera el valor seleccionado en el dropdown ( <option value="xxx" selected>XXX</option>)

Ejemplo práctico: dropdown con años del 2000 al 2010. Selecciono 2008, doy submit, en la siguinte página 2008 es selected

¡Gracias por la ayuda!
__________________
Equívocos sin importancia
  #2 (permalink)  
Antiguo 16/09/2018, 19:12
Avatar de alvaro_trewhela  
Fecha de Ingreso: octubre-2012
Ubicación: localhost
Mensajes: 932
Antigüedad: 6 años, 1 mes
Puntos: 106
Respuesta: Seleccionar opción de dropdown con base en un $_POST

<select name="someSEL">
<option value="1">Opc 1</option>
<option value="2">Opc 2</option>
</select>


----


echo $_POST["someSEL"]

luego:

Código PHP:
Ver original
  1. for($k=2000;$k<=2010;$k++){
  2. echo '<option value="'.$k.'" ';
  3.     if(intval($_POST["someSEL"]) == $k){
  4.     echo "selected ";
  5.     }
  6. echo ">$k</option>";
  7. }
  #3 (permalink)  
Antiguo 16/09/2018, 19:55
Avatar de Threepwood  
Fecha de Ingreso: febrero-2002
Ubicación: Argentina
Mensajes: 906
Antigüedad: 16 años, 10 meses
Puntos: 4
Respuesta: Seleccionar opción de dropdown con base en un $_POST

Hola, Álvaro,

Muchas gracias por tu respuesta. Funciona genial. Siguiente duda: ¿Qué pasa si las opciones del dropdow no son numerales sino cadenas de texto? Entiendo que ahí el bucle for no funcionaría?

¡Gracias!
__________________
Equívocos sin importancia
  #4 (permalink)  
Antiguo 16/09/2018, 20:14
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.982
Antigüedad: 5 años, 5 meses
Puntos: 376
Respuesta: Seleccionar opción de dropdown con base en un $_POST

Utiliza la sintaxis alternativa e itera con un foreach
Código PHP:
Ver original
  1. //Formulario
  2. <select name="year">
  3.    
  4.     <?php foreach(range(2000, 2010) as $year): ?>
  5.    
  6.         <option value="<?php echo $year?>">
  7.             <?php echo $year?>
  8.         </option>
  9.        
  10.     <?php endforeach; ?>
  11.    
  12. </select>
  13.  
  14. //recibes datos
  15. <?php $_POST['year'] = 2005; ?>
  16.  
  17. //vuelves a crear el select
  18. <select name="year">
  19.    
  20.     <?php foreach(range(2000, 2010) as $year): ?>
  21.        
  22.             <option value="<?php echo $year?>"<?php if($year == $_POST['year']) echo ' selected'?>>
  23.                 <?php echo $year ?>
  24.             </option>
  25.            
  26.     <?php endforeach; ?>
  27.    
  28. </select>
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #5 (permalink)  
Antiguo 16/09/2018, 20:48
Avatar de Threepwood  
Fecha de Ingreso: febrero-2002
Ubicación: Argentina
Mensajes: 906
Antigüedad: 16 años, 10 meses
Puntos: 4
Respuesta: Seleccionar opción de dropdown con base en un $_POST

Hola, HHS,

Gracias! Ahora, el foreach funciona en cuanto tiene un rango de números (fechas, en este caso) pero ¿cómo podría hacer lo mismo con cadenas de texto? Suponiendo que el select tiene opciones como "Casa" "Perro" "Árbol"?

Gracias :)
__________________
Equívocos sin importancia
  #6 (permalink)  
Antiguo 16/09/2018, 21:49
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 996
Antigüedad: 7 años, 8 meses
Puntos: 146
Respuesta: Seleccionar opción de dropdown con base en un $_POST

para las cadenas de texto es lo mismo... lo unico que tienes que poner sus valores y comparaciones entre comillas "texto"
__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)
  #7 (permalink)  
Antiguo 16/09/2018, 22:53
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.982
Antigüedad: 5 años, 5 meses
Puntos: 376
Respuesta: Seleccionar opción de dropdown con base en un $_POST

Es lo mismo un arreglo, foreach y la condición
Código PHP:
Ver original
  1. $collection = [
  2.    
  3.         'casa',
  4.         'perro',
  5.         'arbol',
  6.    
  7.     ];
  8.    
  9.  
  10. foreach($collection as $item) {
  11.     echo $item ."\n";
  12. }
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #8 (permalink)  
Antiguo 16/09/2018, 23:40
Avatar de alvaro_trewhela  
Fecha de Ingreso: octubre-2012
Ubicación: localhost
Mensajes: 932
Antigüedad: 6 años, 1 mes
Puntos: 106
Respuesta: Seleccionar opción de dropdown con base en un $_POST

Y las fechas las sacas de donde?

Si tienes un arreglo como esto
Código PHP:
Ver original
  1. $items = ["perro", "gato", "raton", "elefante"];
  2.  
  3. for($k=0;$k<sizeof($items);$k++){
  4. echo '<option value="'.$items[$k].'" ';
  5.     if($items[$k] == $_POST["tu_select"]){
  6.     echo "selected ";
  7.     }
  8. echo ">".$items[$k]."</option>";
  9. }
  #9 (permalink)  
Antiguo 17/09/2018, 09:01
Avatar de Threepwood  
Fecha de Ingreso: febrero-2002
Ubicación: Argentina
Mensajes: 906
Antigüedad: 16 años, 10 meses
Puntos: 4
Respuesta: Seleccionar opción de dropdown con base en un $_POST

Muchas gracias a todos, funciona perfecto :)
__________________
Equívocos sin importancia



La zona horaria es GMT -6. Ahora son las 12:31.