HTML - Ayuda con codigo de buscador

   
Vista:

Ayuda con codigo de buscador

Publicado por patricia (5 intervenciones) el 04/04/2017 22:08:42
Hola a todos.

Vaya por delante que soy una auténtica paleta en programación y no tengo ni idea. El caso es que quería poner un buscador en html en mi pagina web y he encontrado este, que no siendo el mejor, me vale perfectamente porque no tengo que hacer referencia a tablas ni nada.

El caso es que el resultado es un buscador que tiene como dos opciones: "Con todas las palabras" o "con alguna de las palabras". Yo quisiera que no saliera ninguna opción, es decir, que parezca un buscador normal y que no haya que elegir.

Me han dicho que tengo que tocar el código Javascript, pero de verdad que me hablan en chino. ¿Alguien puede decirme cómo se modificaría el código? Os lo dejo abajo. Y mil gracias a todos

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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
<script language="JavaScript" type="text/javascript">
 
var indice_inverso={'BENEFICIOS':[1], 'ACEITE':[1], 'COCO':[1], 'CAPILARES':[1], 'COSMETICA':[1], 'NATURAL':[1], 'ELIMINA':[1], 'PIOJOS':[1], 'COMPRAR':[1], 'AVISO':[1], 'LEGAL':[1], 'POLITICA':[1], 'PRIVACIDAD':[1], 'COOKIES':[1]}
 
var jsfiles = ['','http://www.aceitedecocoparaelpelo.com/']
 
var currentq2 = "";
var detectadaVacia = 0;
 
function requery() {
    detectadaVacia = 0;
    if  (!indice_inverso || !jsfiles) return;
    var currentq = document.query.q.value;
		currentq = currentq.replace(/ +/g, " ")
		currentq = currentq.replace(/^ +/g, "")
		currentq = currentq.replace(/ +$/g, "")
		document.query.q.value = currentq
		currentq = currentq.toUpperCase()
		currentq = currentq.replace(/Á/g, "A")
		currentq = currentq.replace(/É/g, "E")
		currentq = currentq.replace(/Í/g, "I")
		currentq = currentq.replace(/Ó/g, "O")
		currentq = currentq.replace(/Ú/g, "U")
		currentq = currentq.replace(/À/g, "A")
		currentq = currentq.replace(/È/g, "E")
		currentq = currentq.replace(/Ì/g, "I")
		currentq = currentq.replace(/Ò/g, "O")
		currentq = currentq.replace(/Ù/g, "U")
		currentq = currentq.replace(/Ä/g, "A")
		currentq = currentq.replace(/Ë/g, "E")
		currentq = currentq.replace(/Ï/g, "I")
		currentq = currentq.replace(/Ö/g, "O")
		currentq = currentq.replace(/Ü/g, "U")
		currentq = currentq.replace(/Ã/g, "A")
		currentq = currentq.replace(/Õ/g, "O")
		currentq = currentq.replace(/Â/g, "A")
		currentq = currentq.replace(/Å/g, "A")
		currentq = currentq.replace(/Æ/g, "A")
		currentq = currentq.replace(/Ê/g, "E")
		currentq = currentq.replace(/Î/g, "I")
		currentq = currentq.replace(/Ô/g, "O")
		currentq = currentq.replace(/Ø/g, "O")
		currentq = currentq.replace(/Û/g, "U")
		currentq = currentq.replace(/[^A-Z|^0-9|^-|^Ñ|^Ç]/g, " ")
		currentq = currentq.replace(/_/g, " ")
		currentq = currentq.replace(/ +/g, " ")
		currentq = currentq.replace(/ $/, "")
		currentq = currentq.replace(/^ /, "")
    var results = localfind(currentq.split(" "))
    updateResults(results);
    var currentqArray = currentq.split(" ")
    for (var idx=0; idx < currentqArray.length; idx++){
    	var palactiu = currentqArray[idx]
    	if (document.query.pv.value.indexOf(palactiu)==-1){
     	    currentq2 += palactiu + " "
    	} else {detectadaVacia = 1}
    }
    currentq2 = currentq2.replace(/ $/, "")
    var results = localfind(currentq2.split(" "))
    updateResults(results);
}
function localfind(wordlist) {
    var hits = {};
		var entryg = {}
    for (var idx=0; idx < jsfiles.length; idx++){
         hits[idx] = jsfiles[idx];
				 entryg[idx] = 0;
    }
    for (var idx in wordlist) {
         var word = wordlist[idx]
         if (indice_inverso[word]){
         		for (var idx=0; idx < indice_inverso[word].length; idx++) {
             		entryg[indice_inverso[word][idx]]++;
         		}
				}
    }
    for (var fileid in hits) {
    		if(document.query.tipo[0].checked){if (entryg[fileid]<wordlist.length) {delete hits[fileid]}}
    		if(document.query.tipo[1].checked){if (entryg[fileid]==0) {delete hits[fileid]}}
    }
    return hits;
}
function updateResults(results) {
	 var upd_loc = document.getElementById("results")
	 var url_base = ""
	 while (upd_loc.hasChildNodes()){
	 			 upd_loc.removeChild (upd_loc.childNodes[0]);
	 }
	 var newh1 = document.createElement("p");
	 newh1.appendChild(document.createTextNode(""));
	 upd_loc.appendChild(newh1);
	 contador = 0;
	 for (var fileid in results){
	 		 contador++;
	 		 var hit = jsfiles[fileid];
	 		 var newp = document.createElement("p");
			 newp.appendChild( makeHyperlink(url_base + hit, hit));
			 upd_loc.appendChild(newp);
	 }
	 var frase = (contador>1)? " páginas encontradas" : " página encontrada"
	 if(document.query.tipo[0].checked){currentq2 = currentq2.replace(/ /, " AND ")}
	 if(document.query.tipo[1].checked){currentq2 = currentq2.replace(/ /, " OR ")}
	 if (contador == 0){newh1.appendChild(document.createTextNode("No se encontraron resultados" + ((detectadaVacia==1)? ". Se omiten las palabras vacías":"") ))}
	 else {newh1.appendChild(document.createTextNode(contador + frase + " con: " + currentq2  + ((detectadaVacia==1)? ". Se omiten las palabras vacías":"") ))}
	 currentq2 = "";
}
function makeHyperlink(url, text, title){
   var aelem = document.createElement("a");
	 if (title) aelem.setAttribute("title", title)
	 if (url) aelem.setAttribute("href", url)
	 aelem.appendChild(document.createTextNode(text))
	 return aelem;
}
</script>
<style type="text/css">
.busca {color: 555555; font-family: Verdana, Arial; font-weight: normal; font-size: 8pt; text-align: justify}
.busca2 {color: 555555; font-family: Verdana, Arial; font-weight: normal; font-size: 8pt}
</style>
 
<p class="busca">
<form name="query" method="POST" action="javascript:requery()">
<input type="text" name="q" autocomplet="off" value="" class="busca2">
<input type="button" onClick="requery()" value="buscar" class="busca2">
<br />
<input type="radio" name="tipo" checked="checked">Con todas las palabras<br />
<input type="radio" name="tipo">Con algunas de las palabras<br />
<input type="hidden" name="pv" value="A ABAJO ABANDONANDO ABANDONANDOSE ABANDONED ABANS ABARATANDOSE ABARCAN ABAST ABLE ABORDABLE ABOUITIT ABOUT ABOVE ABSENT ABSOLUTAMENT ABSOLUTAMENTE ABSTRAIT ABSURDAMENTE ACABA ACABABA ACABAR ACABE ACABO ACCEDIENDO ACCESIGN ACCESOIRE ACCESS ACCESSOIREMENT ACCOMPAGNENT ACCUMULEES ACEPTABLE ACERCA ACERTADA ACIER ACIERIE ACONSEJABLE ACORD ACQUIERT ACQUIS ACROSS ACTE ACTIVITIES ACTUA ACTUALMENT ACTUALMENTE  ZEROES">
</form>
</p>
<div id="results" class="busca"></div>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Ayuda con codigo de buscador

Publicado por xve (1304 intervenciones) el 05/04/2017 08:14:52
Hola Patricia, la manera sencilla, es esconder las opciones...
1
2
3
4
<div style="display:none">
<input type="radio" name="tipo" checked="checked">Con todas las palabras<br />
<input type="radio" name="tipo">Con algunas de las palabras<br />
</div>

Aunque la manera correcta seria modificando el código del js para que utilice la opción que quieras de las dos por defecto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con codigo de buscador

Publicado por patricia (5 intervenciones) el 05/04/2017 09:04:01
Gracias xve.

Pero al intentar esconder esas opciones me deja de funcionar :(. Y la verdad que no sabría ni cómo empezar a tocar el js (seguro que me lo cargo o explota o algo...) Ayuda pleaseeee
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Ayuda con codigo de buscador

Publicado por xve (1304 intervenciones) el 05/04/2017 14:50:05
No se como lo has hecho patricia, pero a mi me funciona perfectamente añadiendo ese <div> antes y después de las opciones...

Nos puedes mostrar como lo has colocado?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con codigo de buscador

Publicado por patricia (5 intervenciones) el 05/04/2017 16:01:54
Hola xve.

Ante todo GRACIAS de nuevo y mil perdones porque sé que este no es mi tema ni me entero.

Para hacerlo para dummies, que es mi caso, ¿la parte final del codigo para "esconder" las opciones deberia quedar cómo (porque creo que ese es mi error)?¿así?:

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
</script>
 
<style type="text/css">
 
.busca {color: 555555; font-family: Verdana, Arial; font-weight: normal; font-size: 8pt; text-align: justify}
 
.busca2 {color: 555555; font-family: Verdana, Arial; font-weight: normal; font-size: 8pt}
 
</style>
 
 
 
<p class="busca">
 
<form name="query" method="POST" action="javascript:requery()">
 
<input type="text" name="q" autocomplet="off" value="" class="busca2">
 
<input type="button" onClick="requery()" value="buscar" class="busca2">
 
<br />
 
<div style="display:none">
 
<input type="radio" name="tipo" checked="checked">Con todas las palabras<br />
 
<input type="radio" name="tipo">Con algunas de las palabras<br />
 
</div>
 
<input type="radio" name="tipo" checked="checked">Con todas las palabras<br />
 
<input type="radio" name="tipo">Con algunas de las palabras<br />
 
<input type="hidden" name="pv" value="A ABAJO ABANDONANDO ABANDONANDOSE ABANDONED ABANS ABARATANDOSE ABARCAN ABAST ABLE ABORDABLE ABOUITIT ABOUT ABOVE ABSENT ABSOLUTAMENT ABSOLUTAMENTE ABSTRAIT ABSURDAMENTE ACABA ACABABA ACABAR ACABE ACABO ACCEDIENDO ACCESIGN ACCESOIRE ACCESS ACCESSOIREMENT ACCOMPAGNENT ACCUMULEES ACEPTABLE ACERCA ACERTADA ACIER ACIERIE ACONSEJABLE ACORD ACQUIERT ACQUIS ACROSS ACTE ACTIVITIES ACTUA ACTUALMENT ACTUALMENTE  ZEROES">
 
</form>
 
</p>
 
<div id="results" class="busca"></div>
<div style="display:none">
 
<input type="radio" name="tipo" checked="checked">Con todas las palabras<br />
 
<input type="radio" name="tipo">Con algunas de las palabras<br />
 
</div>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Ayuda con codigo de buscador

Publicado por xve (1304 intervenciones) el 05/04/2017 20:07:35
Si exacto!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con codigo de buscador

Publicado por patricia (5 intervenciones) el 05/04/2017 21:25:14
Pues soy el coñazo del día pero a mi me sigue apareciendo lo de "con todas las palabras" y "con algunas de las palabras".
No sé que hago mal.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Ayuda con codigo de buscador

Publicado por xve (1304 intervenciones) el 06/04/2017 08:03:20
Patricia... lo que yo te puese era para reemplazar, no para añadir... solo tenias que añadir los <div> no los <input>....

Fijate que has puesto:
1
2
3
4
5
6
7
8
9
10
11
12
13
...
<div style="display:none">
 
<input type="radio" name="tipo" checked="checked">Con todas las palabras<br />
 
<input type="radio" name="tipo">Con algunas de las palabras<br />
 
</div>
 
<input type="radio" name="tipo" checked="checked">Con todas las palabras<br />
 
<input type="radio" name="tipo">Con algunas de las palabras<br />
...

Has repetido las lineas... quita las que están tachadas!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con codigo de buscador

Publicado por patricia (5 intervenciones) el 06/04/2017 14:09:00
Yupiiii!!!!!!!!


MILLONES DE GRACIAS xve! Supongo que ya lo sabes pero ERES EL MEJOR!!!

Te lo agradezco muchísimo!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar