Retroceder   Foros del Web > Programación para sitios web > Javascript

Respuesta
 
Herramientas Desplegado
Antiguo 08-may-2008, 10:32   #1 (permalink)
Alkarod ha deshabilitado la reputación
 
Fecha de Ingreso: mayo-2008
Mensajes: 2
Buscar entre las opciones de un select

Hola a todos,

Es mi primer post en los foros, así que en primer lugar me disculpo si no he acertado posteando en esta rama, pero no estaba seguro de donde ubicar mi pregunta.

Mi duda es la siguiente, estoy realizando un formulario en el que el usuario debe seleccionar a través de varios campos select tanto su país, como su provincia y localidad. El problema surge porque hay provincias que pueden llegar a incluir miles de localidades y claro, para el usuario buscar la suya en el select se puede hacer engorroso.

He visto en algunas webs campos select sobre los que se puede ir presionando letras del teclado y el propio campo te va buscando dentro de sus contenidos los que corresponden con la sucesión de letras que vas indicando. Algo así como un buscador dinámico dentro del propio select. Por ejemplo, si quiero buscar Granada, y pulsaría la G luego la R y el select iría desplazándose a los contenidos de su lista que coinciden con las letras pulsadas.

Los select tradicionales tienen un comportamiento parecido, pero únicamente sirve para introducir la primera letra de la opción (en el ejemplo anterior solo me valdría pulsar la G porque al pulsar la R ya no serviría para nada).

Bueno, espero haberme sabido explicar y que alguien pueda ayudarme.
Un saludo y muchas gracias por adelantado.
Alkarod está desconectado   Responder Citando
Antiguo 08-may-2008, 21:13   #2 (permalink)
albertcito ha deshabilitado la reputación
 
Fecha de Ingreso: diciembre-2007
Mensajes: 37
Re: Buscar entre las opciones de un select

Postea esto en el foro de ajax!!
lo puedes hacer con una base de datos que contenga la información y con archivos php!

En este link hay un ejemplo y el código fuente: http://www.formatoweb.com.ar/ajax/
albertcito está desconectado   Responder Citando
Antiguo 09-may-2008, 01:49   #3 (permalink)
a2a2 tiene algunos puntos positivos de karma
 
Fecha de Ingreso: marzo-2008
Mensajes: 303
Re: Buscar entre las opciones de un select

Estoy de acuerdo en que lo mejor es hacerlo via AJAX.
Puedes ver un ejemplo con esa funcionalidad en Google Suggest
a2a2 está desconectado   Responder Citando
Antiguo 09-may-2008, 02:02   #4 (permalink)
Alkarod ha deshabilitado la reputación
 
Fecha de Ingreso: mayo-2008
Mensajes: 2
Re: Buscar entre las opciones de un select

Muchas gracias a los dos.

Sabía que podría hacerlo mediante ajax, pero quería saber si existía alguna posibilidad de buscar directamente sobre las opciones del select sin necesidad de acceder a bd.

De todas formas, muchas gracias.
Alkarod está desconectado   Responder Citando
Antiguo 09-may-2008, 02:39   #5 (permalink)
albertcito ha deshabilitado la reputación
 
Fecha de Ingreso: diciembre-2007
Mensajes: 37
De acuerdo Re: Buscar entre las opciones de un select

Cita:
Iniciado por Alkarod Ver Mensaje
.... quería saber si existía alguna posibilidad de buscar directamente sobre las opciones del select sin necesidad de acceder a bd.
...
Bueno en mi opinión, al hacer esto con ajax sabemos que recibimos todos los datos de la base de datos si tienes arreglos en javascript puedes hacer algo parecido como Google Suggest si al fin y al cabo ajax recibe datos de mysql y los datos los puedes cargar al principio. Bueno en todo caso habría que pensar bien como hacer lo mismo solo con javascrip, cargando toda la información de la base de datos al principio.

Ojala que te resulte lo que deseas, adiós.
albertcito está desconectado   Responder Citando
Antiguo 09-may-2008, 04:12   #6 (permalink)
miSko está en el buen camino
 
Fecha de Ingreso: septiembre-2005
Mensajes: 307
Re: Buscar entre las opciones de un select

Bueno, se puede hacer sin ajaX, teniendo todas las Ciudades en un Array.

Doy por supuesto, que sabes obtener las pulsaciones del teclado y las letras y tal, asi que voy al grano :

Código PHP:

function obtenerListaCiudades(textoEscrito,arrayCiudades) {


       var 
textoExpReg '^' textoEscrito '.*' ;
       var 
regex = new RegExp(textoExpReg) ;

       var 
i=;
       var 
ciudadesSeleccionadas = Array() ;
       while (
arrayCiudades.length)
       {
              if(
arrayCiudades[i].search(regex) != -1)
                     
ciudadesSeleccionadas[ciudadesSeleccionadas.length] = arrayCiudades[i] ;              

              
i++ ;
       }

       return 
ciudadesSeleccionadas ;

--» A esta funcion la llamarias con cada Pulsacion de teclado, pasandole el texto introducido en el Textbox, y el array con todas las Ciudades

--» Esta funcion te Devolveria un Array con las ciudades que van concordando, luego con ese array ya puedes hacer lo que quieras: mostrarselas al usuario, supongo xD

--» Espero no haberme equivocado con la sintaxis de las Expresiones regulares, encuanto estas en 3 o 4 lenguajes, q cambian pekeñeces, no estas seguro de nada.

--» El array de Ciudades Inicial, claramente lo tienes que tener echo antes.

--» Dentro de lo que cabe, creo que no me he equivocado en la function, alomejor algun error sintactico que puedes arreglar tu ^_^


Si no te va, o te da error y no sabes como arreglarlo, o no ves el error, postealo aqui si eso :]

PD: Toda esa gente loca por ajaX, tranquilos!!, hay muchas cosas que se pueden hacer con ajaX, pero tambien se pueden hacer sin ellas...

PD2: Yo uso mucho ajaX xD

!
miSko está desconectado   Responder Citando
Antiguo 09-may-2008, 11:53   #7 (permalink)
a2a2 tiene algunos puntos positivos de karma
 
Fecha de Ingreso: marzo-2008
Mensajes: 303
Re: Buscar entre las opciones de un select

Cita:
Iniciado por miSko Ver Mensaje
...
PD: Toda esa gente loca por ajaX, tranquilos!!, hay muchas cosas que se pueden hacer con ajaX, pero tambien se pueden hacer sin ellas...
...
!
Por supuesto, pero para este caso en concreto la lista de ciudades puede ser inmensa, por lo que el fichero HTML podria ser muy grande y tardar demasiado en cargar.
a2a2 está desconectado   Responder Citando
Respuesta
Califica este Tema - Buscar entre las opciones de un select.


Herramientas
Desplegado Califica este Tema
Califica este Tema:

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


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


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93