Rechercher : dans
Par :

Moteur de recherche interne

Dernière réponse le 7 mar 2008 à 11:53:12 sinifer, le 6 mar 2008 à 08:56:36 
 Signaler ce message aux modérateurs

Bonjour,

je fais un moteur de recherche sur js mais j'ai un petit problème quant je fai ma recherche une nouvel page s'ouvre mais je veu pas qu'une nouvel page s'ouvre je veu que ce soit sur la page comme une frame plus bas
voici mon code.

var item = new Array();

// "La page","Son adresse","","Titre de la page","Mot clés","Description de la page"
 
c=0; item[c]=new Array("","index.html","Index EvasionTotale","web, news","index, evasion, totale, home, premiere, page, sommaire","Première page de ce site");
c++; item[c]=new Array("","musique.html","De la musique sur votre site !","web, news","musique, mp3","Voilà une belle page pour mettre de la musique sur votre site !");
c++; item[c]=new Array("","web.html","NEWS DU WEB ?","web, news","Ici vous trouverez toutes l'actualité sur le web .......");

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

function search(frm) {
win=window.open("","");
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, 4, 2, 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>Pages trouvé(s): "+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> <br>";
line += item[which][4] + "<br></td></tr>";
wind.document.write(line);
return 1;
}
 


merci
Configuration: Windows XP
Internet Explorer 7.0

Meilleures réponses pour « moteur de recherche interne » dans :
[IE 7 et 8] Modifier le moteur de recherche par défaut VoirPour Internet Explorer 7 Ouvrez Internet Explorer. Faites un clic sur la flèche dans la barre de recherche en haut à droite. Cliquez sur "Modifier les paramètres de recherche par défaut". Vous pouvez : Définir un moteur de recherche...
Comment utiliser efficacement les moteurs de recherche ? VoirComment utiliser efficacement les moteurs de recherche ? Si Internet représente une masse d'informations colossale, il peut être fastidieux de trouver le renseignement que vous recherchez. Pourtant, il est possible d’optimiser ses requêtes pour...
Rechercher sur Internet VoirRechercher sur Internet Etant donné le nom de pages web présentes pour le Web, il est nécessaire d'utiliser un outil pour rechercher une page spécifique correspondant à des critères de recherche: le moteur de recherche. Pour utiliser un moteur de...
Web - Moteur de recherche VoirIl existe une énorme quantité d'informations sur Internet (plusieurs millions ou milliards de documents), et ces informations sont pour la plupart renouvelées quotidiennement. Le moteur de recherche est un élément indispensable pour s'y...
PHP - Créer un moteur de recherche VoirIdée générale Le moteur de recherche ci-dessous ne correspond qu'à une idée possible de moteur de recherche simple, ne gérant qu'un seul mot clé. Le concept du fonctionnement de ce moteur est de créer une base de donnée contenant les mots clés de...

1

Alain_42, le 6 mar 2008 à 10:33:33

Salut,

c'est normal que cela ouvre une autre page, tu as mis window.open

une piste:

dans ta page html, à l'endroit ou tu veux que s'écrive le résultat tu mets:

<div id="resultat">
</div>

dans ta fonction javascript, tu enleve de ta variable page les balises <html><head><body>

tu t'arranges pour mettre ton titre dans une ligne de la <table>

en fin de fonction JS, tu mets:

document.getElementById('resultat").innerHTML=page;

@lain

Répondre à Alain_42

2

sinifer, le 6 mar 2008 à 10:55:50

Merci je vais testé tous sa :)

Répondre à sinifer

3

Alain_42, le 6 mar 2008 à 17:06:07

Un truc dans ce gout là:

var item = new Array();

// "La page","Son adresse","","Titre de la page","Mot clés","Description de la page"
 
c=0; item[c]=new Array("","index.html","Index EvasionTotale","web, news","index, evasion, totale, home, premiere, page, sommaire","Première page de ce site");
c++; item[c]=new Array("","musique.html","De la musique sur votre site !","web, news","musique, mp3","Voilà une belle page pour mettre de la musique sur votre site !");
c++; item[c]=new Array("","web.html","NEWS DU WEB ?","web, news","Ici vous trouverez toutes l'actualité sur le web .......");

page="Résultats de la recherche:<table border=0 cellspacing=10 width=80%>\n";

function search(frm,id_ecrire) {
txt = frm.srchval.value.split(" ");
fnd = new Array(); total=0;
for (i = 0; i < item.length; i++) {
	fnd[i] = 0;
		order = new Array(0, 4, 2, 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;
}
page+="</table><br>Pages trouvé(s): "+total+"<br>\n";
//ecriture du result dans la page
document.getElementbyId[id_ecrire].innerHTML=page;
}
function show(which,wind,num) {
link = item[which][1] + item[which][0]; 
page+= "<tr><td><a href='"+link+"'>"+item[which][2]+"</a> <br>";
page+= item[which][4] + "<br></td></tr>\n";

return 1;
}

<body>

l'appel de la fct JS:  search(....,'resultat')

a l'endroit ou tu veux ecrire le resultat:

<div id="resultat">

</div>

</body>
</html>

Répondre à Alain_42

4

sinifer, le 7 mar 2008 à 11:10:47

Salut j'ai fai comme tu ma dit mai là j'ai un petit problème je te onte mon code html

là c'est mon appel

 
<SCRIPT LANGUAGE="JavaScript" SRC="moteur.txt">
</SCRIPT>


et là mon body
 
<body>

<p align="center">Votre moteur de recherche &agrave; inserer : </p>
<TABLE WIDTH="141" BORDER=0 align="center" CELLPADDING=0 CELLSPACING=0>
<TR>

<TD 

<center>
<form method=get action="javascript:void(0)" onsubmit="search(moteur.txt,'resultat'); return false;">

<table width="143">
<tr><td valign="middle" align="center" width="151">

    <p align="center">
    <input type=text name=srchval value="" size="18">
    <input type=submit value="Votre recherche">
    </p>
  <td>
  </td>
  <center>
</form>
</center>
</table>
<div align="center">
<div id="resultat">
</div>
</body>


je tien a te signalé que je débute donc soit indulgent stp car je sui sur que c'est une erreure bidon merci déjà pour tou ce que tu a fait

Répondre à sinifer

5

sinifer, le 7 mar 2008 à 11:20:08

Enffette quant je met

search(....,'resultat')
^
||
ce qui va là c'est la première partie de mon frame??
et resultat sera la deuxième ???

ou je mélange tous?

Répondre à sinifer

6

 Alain_42, le 7 mar 2008 à 11:53:12

Par cette methode, on ne travaille pas avec des frames.

Tu as des erreurs dans ton HTML


et dans tes tables c'est pas bon.

Essayes comme ça, je n'ai pas testé.

<body>

<p align="center">Votre moteur de recherche &agrave; inserer : </p>




<form method="get" action="javascript:void(0)" onsubmit="search(moteur.txt,'resultat'); return false;">
<table WIDTH="141" BORDER="0" align="center" CELLPADDING="0" CELLSPACING="0">
<tr>
    <td>Saisie:</td><td  width="151"><input type="text" name="srchval" value="" size="18"></td>
</tr>
<tr>	
   <td colspan="2" align="center"><input type="submit" name="recherche" value="Votre recherche"></td>
</tr>
</table>
</form>
<br>
<div align="center" id="resultat">
</div>

</body>



si ton script JS est le link du début, ton appel de fct JS n'est pas bon

search(moteur.txt,'resultat');
Le premier parametre moteur.tx ne doit pas être le nom du fichier qui contient la fonction mais la valeur à rechercher.

et mis entre '

Répondre à Alain_42