Foros del Web » Programando para Internet » PHP »

Mantener la seleccion de un combo con PHP

Estas en el tema de Mantener la seleccion de un combo con PHP en el foro de PHP en Foros del Web. y sigo con mi busqueda avanzada, ahora lo que estoy haciendo antes de mandar la consulta es validar los campos, tengo varios select y varias ...
  #1 (permalink)  
Antiguo 16/04/2010, 12:08
Avatar de SymarCs  
Fecha de Ingreso: abril-2010
Mensajes: 67
Antigüedad: 14 años
Puntos: 1
Mantener la seleccion de un combo con PHP

y sigo con mi busqueda avanzada, ahora lo que estoy haciendo antes de mandar la consulta es validar los campos, tengo varios select y varias cajas de texto. ejemplo:

Edad: [select] [textbox]

lo que hago es validar el textbox si en vez de escribir numeros teclean caracteres, muestro un div (que esta oculto con css) y que contiene un mensaje de error deben ser numeros.

Esto lo hago cuando un input submit es presionado, lo que hace que se recarge la pagina y por lo tanto los datos de la caja de texto se perdian. Lo puede arreglar pasandole al value un parametro que obtengo con un GET. Mas o menos asi.

Código PHP:
<select name="edad"><option>[B]&lt;[/B]</option><option>[B]&lt;=[/B]</option><option selected="selected">[B]=[/B]</option><option>[B]&gt;=[/B]</option><option>[B]&gt;[/B]</option></select>
<input type="text" name="latgr" size="10" maxlength="2" [B]value="<?php echo $latgr?>"[/B]/>
Asi cuando teclee un caracter y luego opriman buscar, les aparecera el error pero el dato tecleado se conserva, mi pregunta es como puedo hacer lo mismo pero ahora con los combos, es decir si eligen:

Edad > aa

Al darle click en "buscar" el dato 'aa' se mantiene pero el valor de > cambia a = por que ese es el valor seleccionado por defecto.

Alguna manera sin utilizar javascript o ajax para cargar solo los datos necesarios, solo PHP.
  #2 (permalink)  
Antiguo 16/04/2010, 12:52
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Mantener la seleccion de un combo con PHP

Para eso debes de asignar la propiedad selected="selected" al <option> que quieras pre-seleccionar.

Saludos.
  #3 (permalink)  
Antiguo 18/04/2010, 21:21
Avatar de SymarCs  
Fecha de Ingreso: abril-2010
Mensajes: 67
Antigüedad: 14 años
Puntos: 1
Respuesta: Mantener la seleccion de un combo con PHP

De hecho la pre-seleccion la tengo en el =.

Tengo 5 opciones:

<
<=
= ---> selected="selected"
>=
>

Los datos los valido en la misma pagina, por eso al recargar la pagina aun que el usuario seleccione otra opcion (un > por ejemplo) ese dato no se mantiene como lo hace el valor del textbox.

Para el textbox lo hice con su value (<?php echo $edad;?>).

Código PHP:
$edad = $_GET['$edad']; //recoger el valor del texbox
$edadop = $_GET['$edadop']; //recoger el operador (>,=,<,etc)

<input type="text" name="edad" size="10" maxlength="2" [B]value="<?php echo $edad;?>"[/B]/>
Como lo hago para el select???

Si cambio de = a > (o el que sea) y hay un error el el textbox, al recargar la pagina mantener el valor seleccionado a pesar del error.
  #4 (permalink)  
Antiguo 18/04/2010, 22:52
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Mantener la seleccion de un combo con PHP

Como te comento, es algo básico de HTML y Forms, debes de pasar el atributo selected:
Código HTML:
Ver original
  1. <select name="foo">
  2.         <option value="bar">bar</option>
  3.         <option value="baz">baz</option>
  4.         <option value="daz" selected="selected">daz</option><!-- Esta opcion saldra pre-seleccionada -->

Al estar dibujando tu combo, desde PHP, debes de checar que opcion es la que selecciono el usuario e imprimir el atributo selected="selected" a la opcion correcta.

En las FAQs hay ejemplos de como te puedes ahorrar ese trabajo usando una funcion que dibuje un combo desde un Array.

Saludos.
  #5 (permalink)  
Antiguo 19/04/2010, 02:06
Avatar de gogupe  
Fecha de Ingreso: octubre-2006
Ubicación: Mallorca
Mensajes: 897
Antigüedad: 17 años, 6 meses
Puntos: 32
Respuesta: Mantener la seleccion de un combo con PHP

Cita:
Iniciado por GatorV Ver Mensaje
Como te comento, es algo básico de HTML y Forms, debes de pasar el atributo selected:
Código HTML:
Ver original
  1. <select name="foo">
  2.         <option value="bar">bar</option>
  3.         <option value="baz">baz</option>
  4.         <option value="daz" selected="selected">daz</option><!-- Esta opcion saldra pre-seleccionada -->

Al estar dibujando tu combo, desde PHP, debes de checar que opcion es la que selecciono el usuario e imprimir el atributo selected="selected" a la opcion correcta.

En las FAQs hay ejemplos de como te puedes ahorrar ese trabajo usando una funcion que dibuje un combo desde un Array.

Saludos.
Esto está bien, pero el no está pidiendo eso, ya que en este ejemplo siempre saldrá seleccionado la opcion 3, ¿y si escoge otra?

Te pongo como lo hago yo, que no se si se hace asi, pero me da buenos resultado, ya que tenía el mismo problema que tu, tuve que improvisar.

Código PHP:
<select name="foo">
    <?
        
if ($_GET['foo']=='bar')
            {echo 
"<option value='bar' selected>bar</option>";}
        else{echo 
"<option value='bar'>bar</option>";}
        
        if (
$_GET['foo']=='baz')
            {echo 
"<option value='baz' selected>baz</option>";}
        else{echo 
"<option value='baz'>baz</option>";}

        if (
$_GET['foo']=='bar')      
            {echo 
"<option value='daz' selected>daz</option>";}
        else{echo 
"<option value='daz'>daz</option>";}
    
?>
    
</select>
  #6 (permalink)  
Antiguo 19/04/2010, 08:35
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Mantener la seleccion de un combo con PHP

No le estoy resolviendo el problema, simplemente le estoy indicando para que aprenda y entienda como es el proceso, de hecho le dí la respuesta al indicarle que en las FAQs hay un ejemplo como hacerlo con una función muy sencilla donde solo pasas un arreglo con los datos.

Saludos.

Etiquetas: combo, mantener, seleccion
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 22:44.