Foros del Web » Programando para Internet » Javascript »

Como arreglar el buscador

Estas en el tema de Como arreglar el buscador en el foro de Javascript en Foros del Web. Hola: Estoy usando un codigo libre para hacer un pequeño buscador, el problema que tengo es que si por ejemplo yo busco 2 y tengo ...
  #1 (permalink)  
Antiguo 18/02/2005, 04:37
 
Fecha de Ingreso: abril-2003
Mensajes: 363
Antigüedad: 21 años
Puntos: 3
Como arreglar el buscador

Hola:

Estoy usando un codigo libre para hacer un pequeño buscador, el problema que tengo es que si por ejemplo yo busco 2 y tengo varios registos con por ejemplo 20, 22, 200, ... salen también en mi busqueda.

Lo que me gustaría es saber que tengo que cambiar en el codigo para que me busque la palabra exactamente, es decir, si pongo 2 que solo salgan los que tengan relacion con el 2, si pongo 20 que solo salga el que tenga relacion con el 20.

El codigo es el siguiente:

Código HTML:
<!-- TWO STEPS TO INSTALL SITE SEARCH:

  1.  Copy the coding into the HEAD of your HTML document
  2.  Add the last code into the BODY of your HTML document  -->

<!-- STEP ONE: Paste this code into the HEAD of your HTML document  -->

<HEAD>

<SCRIPT LANGUAGE="JavaScript">
<!-- Original:  Dion ([email protected]) -->
<!-- Web Site:  http://www.iinet.net.au/~biab -->

<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->

<!-- Begin
var item = new Array();

/* Here is where all the magic happens.  
    Just enter as many additional pages that
    that you want to search, then fill in the
    additional listings for each page.
*/

// "Page Name","path","Page Title","Many,Key,Words","Descriptive Comments"

c=0; item[c]=new Array("Parcela 001.pdf","","Poligono 2 - Parcela 1","Parcela 1","Poligono 2. Parcela 1");
c++; item[c]=new Array("Parcela 002.pdf","","Poligono 2 - Parcela 2","Parcela 2","Poligono 2. Parcela 2");
c++; item[c]=new Array("Parcela 003.pdf","","Poligono 2 - Parcela 3","Parcela 3","Poligono 2. Parcela 3");
c++; item[c]=new Array("Parcela 004.pdf","","Poligono 2 - Parcela 4","Parcela 4","Poligono 2. Parcela 4");
c++; item[c]=new Array("Parcela 005.pdf","","Poligono 2 - Parcela 5","Parcela 5","Poligono 2. Parcela 5");
c++; item[c]=new Array("Parcela 006.pdf","","Poligono 2 - Parcela 6","Parcela 6","Poligono 2. Parcela 6");
c++; item[c]=new Array("Parcela 007.pdf","","Poligono 2 - Parcela 7","Parcela 7","Poligono 2. Parcela 7");
c++; item[c]=new Array("Parcela 008.pdf","","Poligono 2 - Parcela 8","Parcela 8","Poligono 2. Parcela 8");
c++; item[c]=new Array("Parcela 009.pdf","","Poligono 2 - Parcela 9","Parcela 9","Poligono 2. Parcela 9");
c++; item[c]=new Array("Parcela 010.pdf","","Poligono 2 - Parcela 10","Parcela 10","Poligono 2. Parcela 10");
c++; item[c]=new Array("Parcela 011.pdf","","Poligono 2 - Parcela 11","Parcela 11","Poligono 2. Parcela 11");
c++; item[c]=new Array("Parcela 012.pdf","","Poligono 2 - Parcela 12","Parcela 12","Poligono 2. Parcela 12");
c++; item[c]=new Array("Parcela 013.pdf","","Poligono 2 - Parcela 13","Parcela 13","Poligono 2. Parcela 13");
c++; item[c]=new Array("Parcela 014.pdf","","Poligono 2 - Parcela 14","Parcela 14","Poligono 2. Parcela 14");
c++; item[c]=new Array("Parcela 015.pdf","","Poligono 2 - Parcela 15","Parcela 15","Poligono 2. Parcela 15");
c++; item[c]=new Array("Parcela 016.pdf","","Poligono 2 - Parcela 16","Parcela 16","Poligono 2. Parcela 16");
c++; item[c]=new Array("Parcela 017.pdf","","Poligono 2 - Parcela 17","Parcela 17","Poligono 2. Parcela 17");
c++; item[c]=new Array("Parcela 018.pdf","","Poligono 2 - Parcela 18","Parcela 18","Poligono 2. Parcela 18");
c++; item[c]=new Array("Parcela 019.pdf","","Poligono 2 - Parcela 19","Parcela 19","Poligono 2. Parcela 19");
c++; item[c]=new Array("Parcela 020.pdf","","Poligono 2 - Parcela 20","Parcela 20","Poligono 2. Parcela 20");
c++; item[c]=new Array("Parcela 021.pdf","","Poligono 2 - Parcela 21","Parcela 21","Poligono 2. Parcela 21");
c++; item[c]=new Array("Parcela 022.pdf","","Poligono 2 - Parcela 22","Parcela 22","Poligono 2. Parcela 22");
c++; item[c]=new Array("Parcela 023.pdf","","Poligono 2 - Parcela 23","Parcela 23","Poligono 2. Parcela 23");
c++; item[c]=new Array("Parcela 024.pdf","","Poligono 2 - Parcela 24","Parcela 24","Poligono 2. Parcela 24");
c++; item[c]=new Array("Parcela 025.pdf","","Poligono 2 - Parcela 25","Parcela 25","Poligono 2. Parcela 25");
c++; item[c]=new Array("Parcela 026.pdf","","Poligono 2 - Parcela 26","Parcela 26","Poligono 2. Parcela 26");
c++; item[c]=new Array("Parcela 027.pdf","","Poligono 2 - Parcela 27","Parcela 27","Poligono 2. Parcela 27");
c++; item[c]=new Array("Parcela 028.pdf","","Poligono 2 - Parcela 28","Parcela 28","Poligono 2. Parcela 28");
c++; item[c]=new Array("Parcela 029.pdf","","Poligono 2 - Parcela 29","Parcela 29","Poligono 2. Parcela 29");
c++; item[c]=new Array("Parcela 030.pdf","","Poligono 2 - Parcela 30","Parcela 30","Poligono 2. Parcela 30");




page="<html><head><title>Resultados de la busqueda</title></head><body bgcolor='white'><center><table border=0 cellspacing=10 width=80%>";


function search(frm) {
win = window.open("","","scrollbars");
win.document.write(page);
txt = frm.srchval.value.split(" ");
fnd = new Array(); total=0;
for (i = 0; i < item.length; i++) {
fnd[i] = 0; order = new Array(0, 3);
for (j = 0; j < order.length; j++)
for (k = 0; k < txt.length; k++)
if (item[i][order[j]].toLowerCase().indexOf(txt[k]) > -1 && txt[k] != "")
fnd[i] += (j+1);
}
for (i = 0; i < fnd.length; i++) {
n = 0; w = -1;
for (j = 0;j < fnd.length; j++)
if (fnd[j] > n) { n = fnd[j]; w = j; };
if (w > -1) total += show(w, win, n);
fnd[w] = 0;
}
win.document.write("</table><br>Resultados Encontrados: "+total+"<br></body></html>");
win.document.close();
}
function show(which,wind,num) {
link = item[which][1] + item[which][0]; 
line = "<tr><td><a href='"+link+"'>"+item[which][2]+"</a> Score: "+num+"<br>";
line += item[which][4] + "<br>"+link+"</td></tr>";
wind.document.write(line);
return 1;
}
//  End -->
</script>
</HEAD>

<!-- STEP TWO: Copy this code into the BODY of your HTML document  -->

<BODY>

<center>
Elige la Parcela
<form method=get action="javascript:void(0)" onsubmit="search(this); return false;">
<tr><td><input type=text name=srchval value=""><input type=submit value="Buscar"></td></tr>
</form>

</center>

<p><center>
<font face="arial, helvetica" size="-2">Buscador SigPAC</font>
</center><p>

<!-- Script Size:  3.16 KB -->
</BODY> 
Muchas Gracias

Última edición por yazo; 18/02/2005 a las 04:39
  #2 (permalink)  
Antiguo 18/02/2005, 14:39
 
Fecha de Ingreso: octubre-2004
Ubicación: España
Mensajes: 894
Antigüedad: 19 años, 6 meses
Puntos: 3
Hola, yazo
El código es complejo y puede que así se estropeen otras funcionalidades, pero para tu problema concreto creo que se ajustaría a lo que quieres si sustituyes
Código PHP:
if (item[i][order[j]].toLowerCase().indexOf(txt[k]) > -&& txt[k] != ""
por
Código PHP:
if (item[i][order[j]].toLowerCase() == txt[k] && txt[k] != ""
Pruébalo a ver.

Por otro lado, deberías poner comillas a
Código:
<input type=text name="srchval" value="">
__________________
Angel :cool:
  #3 (permalink)  
Antiguo 21/02/2005, 09:33
 
Fecha de Ingreso: abril-2003
Mensajes: 363
Antigüedad: 21 años
Puntos: 3
Lo siento pero asi no funciona.

¿Como puedo solucionarlo de otra forma?

Gracias
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 17:51.