rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

Moteur de recherche interne

sinifer, le jeudi 6 mars 2008 à 08:56:36
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
Répondre à sinifer  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Alain_42, le jeudi 6 mars 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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
sinifer, le jeudi 6 mars 2008 à 10:55:50
merci je vais testé tous sa :)
Répondre à sinifer

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Alain_42, le jeudi 6 mars 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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
sinifer, le vendredi 7 mars 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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
sinifer, le vendredi 7 mars 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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 Alain_42, le vendredi 7 mars 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
Logiciels pertinents trouvés dans les téléchargements
Télécharger Google Toolbar pour Internet Explorer 4Google Toolbar pour Internet Explorer - La barre d'outils Google permet : d'afficher le pagerank des pages visitées d'ajouter à vos favoris les pages que vous...Catégorie: Référencement
Licence: Freeware/gratuit
Télécharger Widget eBay   3.5.2Widget eBay - Widget eBay est une barre de recherche internationale. Il garde en mémoire les résultats de vos 10 dernières recherches, ce...Catégorie: Internet
Licence: Freeware/gratuit
Télécharger WordPress 2.6.1WordPress - WordPress permet de faire de la publication personnelle. Il s’utilise comme éditeur de blogs ou gestionnaires des contenus...Catégorie: Blogs/CMS
Licence: Freeware/gratuit
Télécharger Internet Explorer 7Internet Explorer - Internet Explorer 7 est la dernière version du navigateur phare de Microsoft, intégrant les derniers correctifs en matière...Catégorie: Navigateurs
Licence: Freeware/gratuit
Plus de logiciels gratuits sur « MOTEUR DE RECHERCHE INTERNE »