Contenido

Crea tu propio suggest

23 Ene

+ 10

Desde que ví en Google, el suggest aluciné de lo útil que era eso, e incluso diseñé uno que está implementado en el ajaxRegulus.

Hoy navegando por del.icio.us, he descubierto esta librería JS para crear un suggest de una forma facil y rápida.

Actualización

Suggest, es una herramienta que facilita las busquedas, dando resultados obtenidos de una base de datos, o un fichero XML, o cualquier otra fuente, de tal forma que a medida que estás introduciendo la palabra él te está sugiriendo posibles palabras con respecto a las palabras introducidas. Al igual que muchas aplicaciones de escritorio lo hacen y no le prestamos atención, en web no era algo tan trivial como ahora.

ajax, suggest, php, javascript

¿Como usarla?

  • Descargar el js (suggest.js)
  • Hacemos la llamada al fichero
<script type="text/javascript" src="./prototype.js"></script>
<script type="text/javascript" src="../suggest.js"></script>
  • Colocamos los estilos del div.
<stile>
     .suggest {
         position: absolute;
         background-color: #FFFFFF;
         border: 1px solid #CCCCFF;
         font-size: 80%;
         width: 200px;
     }
     .suggest div {
         display: block;
         width: 200px;
         overflow: hidden;
         white-space: nowrap;
     }
  </stile>
  • Hacemos la llamada a la función que nos capture el evento load y nos prepare el suggest.

<script type="text/javascript" language="javascript">
 <!--
      Event.observe(window,
                   'load',
                   function(){
                     new IncSearch.Suggest("text", "suggest", list, {dispMax: 10});
                   },
                   false);
  //-->
  </script>
  • Insertamos el input y el div para el suggest correspondiente.


<input id="text" type="text" name="pattern" autocomplete="off" size="50"><br/>
    <div id="suggest" class="suggest" />
  

De esta forma tan simple, tenemos un suggest montado.

Explicación



new IncSearch.Suggest("text", "suggest", list, {dispMax: 10});
  

    text  –> Es el tipo de input que va a tratar el suggest
    suggest –> Es donde van a ir los datos resultantes.
    list –> List es la lista de valores por el que filtrará el suggest.

Requerimientos

Para hacerlo funcionar necesitamos prototype.

Aclaraciones

Este ejemplo es únicamente una idea de como montarlo, el ejemplo no carga nada dinámicamente de BD, aunque con un poco de idea e imaginación todo se puede conseguir.

Una pregunta desde la ignorancia total….. ¿Qué es eso de suggest? :)

Perdona, es que a veces uno toca tanto estas cosas que se olvida que no todo el mundo es tan friki como yo ;)
Ya está corregido.

Pero como lo hago funcionar para que corra con base de datos mysql

saludos

#3 Para hacerlo funcionar con MySQL tendrías que sacar los datos y meterlos en list, este ejemplo está montado teniendo en cuenta que tenemos los datos en un array en JS, pero cambiarlo y añadirle la petición en Ajax no es nada complicado.

Saludos, a mi me que este post tiene una sola cosa buena y es el titulo pues el script no se le parece al original ni su aplicacion, antes de postear deberias de tomarte un segundo para probar los scripts que pones seguramente vas a borrar este post pues no te va a gustar que te digan la verdad, pues si algo es bien cierto es que si vamos a compartir algo que sea algo bueno

@Mario: Antes de hablar hay que indagar, tienes toda la razón,… pero te lo aplicas realmente mal.

Echalé un vistazo al script FUNCIONANDO
http://www.enjoyxstudy.com/javascript/suggest/demo/demo1.html

Quizas es que no hayas sabido hacerlo funcionar, pero eso es otro problema.

Saludos

lo probe y anda al pelo. :)
se podra hacer que cuando le haces click al resultado.. tambien te traiga asociado un ID. Al estilo Select List/Menu. Por ejemplo.. ahora esta con un array. Supongo que deberiamos tener 2 array 1 para el texto y otro para los ID.
O que me podes sugerir.?.. gracias.
atte.
Nicolas

Comentar

#

Me reservo el derecho de eliminar y/o modificar los comentarios que contengan lenguaje inapropiado, spam u otras conductas no apropiadas en una comunidad civilizada. Si tu comentario no aparece, puede ser que akismet lo haya capturado, cada día lo reviso y lo coloco en su lugar. Siento las molestias.


Cerrar
Enviar por Correo