Foros del Web » Programando para Internet » PHP »

Lista desplegable marcada al recargar con Enum

Estas en el tema de Lista desplegable marcada al recargar con Enum en el foro de PHP en Foros del Web. Hola a todos Estoy realizando un buscado de noticias donde el usuario puede elegir las fechas entre las cuales se deben paginar los resultados. Las ...
  #1 (permalink)  
Antiguo 06/05/2010, 02:43
 
Fecha de Ingreso: mayo-2010
Mensajes: 3
Antigüedad: 13 años, 11 meses
Puntos: 0
Lista desplegable marcada al recargar con Enum

Hola a todos

Estoy realizando un buscado de noticias donde el usuario puede elegir las fechas entre las cuales se deben paginar los resultados. Las fechas las configuro a través de listas desplegables ENUM ('1','2,','3', etc...) para el dia, mes y año, se recogen bien y se pagina correctamente.

La cuestión es que la página, una vez concluida la selección de fechas, se recarga y debería dejar marcados los select donde el usuario ha seleccionado alguna fecha. Y he aquí algunos problemas con los que me encuentro:

·Por defecto, los select cargados con la lista Enum marcan el último valor (31, 12, 2010 para dia, mes, año)

·Al recargarse, aún recogiendo el valor correctamente no consigo que deje 'marcado' ese valor en la lista.

La consulta y la muestra del resultado la hago así

Código PHP:
$sSQL="SHOW COLUMNS FROM $table  LIKE 'ano1'";
$result=mysql_query($sSQL,$link);
$subresultmysql_fetch_array($result);
$subresult=explode("','",preg_replace("/(enum|set)\('(.+?)'\)/","\\2",$subresult[1]));

echo 
'<select name="year1" value="year1" id="year1">';
echo  
"<option value=''>Año</option>";
foreach (
$subresult AS $key) echo "<option value=$key selected>$key</option>";
echo 
"<option selected>$nyear1</option>";
echo 
"</select>"
Si dejo en codigo la linea

Código PHP:
echo "<option selected>$nyear1</option>"
lo que hace es dejar seleccionado el valor elegido pero, claro, añadiendomelo a la lista que muestro, al final, y deseo que no se cree dicha entrada en el listado.

He probado diversas opciones pero no doy con la solución.

Muchas gracias por vuestro tiempo.
  #2 (permalink)  
Antiguo 06/05/2010, 02:49
Avatar de AnesGy  
Fecha de Ingreso: mayo-2009
Mensajes: 518
Antigüedad: 14 años, 11 meses
Puntos: 19
Respuesta: Lista desplegable marcada al recargar con Enum

Esto es HTML:

<option [value="tu valor"] [selected="selected"]>texto</option>

Esta es la sintaxis de la etiqueta option. Si no pones value, el valor de la etiqueta será el texto interno de la misma. Si pones selected se intentará marcar por defecto ese elemento.

El elemento que se marcará es el último que se haya encontrado con el atributo selected, o lo dejará vacío si no se ha encontrado ninguno con dicho atributo.


Mira un poco tu código y verás que todos los opiton que usas tienen la etiqueta selected (y además la tienen mal).
__________________
Si alguna vez parece que soy grosero, pido perdón, es un intento fallido de ser directo.

AnesGy SD. Name it, Get it
  #3 (permalink)  
Antiguo 06/05/2010, 04:35
 
Fecha de Ingreso: mayo-2010
Mensajes: 3
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Lista desplegable marcada al recargar con Enum

Bueno, me ha funcionado haciendo esto

Código PHP:
foreach ($subresult AS $key)
if (
$nyear1!= $key){ 
echo 
"<option value=$key>$key</option>";
}else
    
    echo 
"<option value=$key selected=nyear1>$key</option>"
  #4 (permalink)  
Antiguo 06/05/2010, 04:42
Avatar de AnesGy  
Fecha de Ingreso: mayo-2009
Mensajes: 518
Antigüedad: 14 años, 11 meses
Puntos: 19
Respuesta: Lista desplegable marcada al recargar con Enum

Te digo que lo estas poniendo mal XD. Eso es HTML de 1980.

Hoy en día hay que seguir estándares por k capaz k mañana sale un nuevo navegador y dice que tu página no puede ser interpretada por que no sigue el estándar HTML.

<option [value="tu valor"] [selected="selected"]>texto</option>

te comes las comillas y el valor del atributo selected tiene que ser selected, no puede ser otra cosa.


Intenta seguir los estándares, de esta forma los navegadores entenderán más rápido tu página y esta cargará antes.
__________________
Si alguna vez parece que soy grosero, pido perdón, es un intento fallido de ser directo.

AnesGy SD. Name it, Get it

Etiquetas: desplegable, enum, lista, recargar
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:00.