11548 sujets

JavaScript, DOM et API Web HTML5

bonjour,

J'ai récuperer le code d'un moteur de recherche en javascript mais dans la liste des résultat je voudrais pouvoir rajouter une description pour chaque résultat, je pense qu'il faut rajouter un "item" mais je n'y arrive pas.
je cherche aussi comment enlever le nom de la page entre parenthères dans les résultats.

Merci de votre aide.

Fr.


var tjs_base=new TJS_InitBase("_self");
// TJS_InitBase(target) : target="_blank" pour ouvrir dans une nouvelle page
tjs_base.Add("ess2.html","Page générale sur la musique","musique,zique,music,disque,cd");
tjs_base.Add("scinema.html","Page générale sur le cinéma","cine,cinoche,cinéma,cinema,acteur,film");
tjs_base.Add("srock.html","Page sur le rock","rock,rock and roll, rock n' roll,musique");
tjs_base.Add("su2.html","Page sur le groupe U2","rock,musique,u2,U2");
tjs_base.Add("sclassique.html","Page sur la musique classique","musique,classique,violon,concert");



function TJS_InitBase(target) {
	this.nb_item=0;
	this.target=target;
	this.Add=AddItem;
	this.Search=SearchItem;
}
function AddItem(page,desc,cle) {
	var nb = this.nb_item;
	var item = new Object;
  item.page=page;
  item.desc=desc;
  item.cle=cle;
	this[nb]=item;
	this.nb_item++;
}


function SearchItem(txt) {
	txt = unescape(txt);
	txt = txt.replace(/\+/g," ");
	var n=tjs_base.nb_item;
	var indice=-1;
	if (txt=="Saisir un mot clé");
	else{	
     document.forms["tjs_search"].elements["mot"].value=txt;
  var Z=""; var nb=0;
  for (var i=0; i<n; i++) {
  	if (tjs_base[i].cle.toUpperCase().indexOf(txt.toUpperCase(),0)!="-1") {
    Z+="<A target='"+tjs_base.target+"' href='"+tjs_base[i].page+"'>"+tjs_base[i].desc+"</A> <SMALL>("+tjs_base

[i].page+")</SMALL><BR>"
    nb++;
  	}
  }
  if (nb>0) {
  	if (nb==1) {Z="Un résultat trouvé pour la recherche sur <B>"+txt+"</B> : <BR>"+Z;}
  	else {Z=nb+" résultats trouvés pour la recherche sur <B>"+txt+"</B> : <BR>"+Z;}
  }else{Z="Aucun résultat pour la recherche sur <B>"+txt+"</B><BR>Vérifiez l'orthographe ou essayez un autre mot 

clé !";}
  document.write(Z);
	}
}

function TJS_Search(f) {
	if (f.mot.value!=""){f.submit();}	
}

function TJS_PrintResult() {
	var url=document.location.href;
	if (url.indexOf("?mot=",0) > 0) {
  var mot=url.substring(url.indexOf("?mot=",0)+5);
  SearchItem(mot);
	}
}


<HTML>
<HEAD>

<script type="text/javascript" src="moteur.js"></script>
 </HEAD>
<BODY text="navy" bgcolor="#FFFFFF" alink="#FF8C00" link="#FF8C00" vlink="#FF8C00">


<FORM name=tjs_search METHOD=get action="">
<INPUT NAME="mot" SIZE=20 MAXLENGTH=35 value="Saisir un mot clé" onFocus="if (this.value=='Saisir un mot clé') 

{this.value=''}" onBlur="if (this.value==''){this.value='Saisir un mot clé'}"> 
<INPUT TYPE="button" name="bouton" VALUE="Rechercher" onClick="TJS_Search(this.form)">
</FORM> 

<script language=javascript>
// Affichage des résultats éventuels.
TJS_PrintResult();
</SCRIPT>


</BODY>
</HTML>

[/i][/i][/i][/i]
Modifié par frdiard (20 Mar 2009 - 20:13)
Bonjour,

Il faut ajouter l'item dans tjs_base.Add:

tjs_base.Add("su2.html","Page sur le groupe U2","rock,musique,u2,U2","je décris ma page");




Puis il faut modifier la fonction Additem:
function AddItem(page,desc,cle,madescription) {
	var nb = this.nb_item;
	var item = new Object;
		item.page=page;
		item.desc=desc;
		item.cle=cle;
		item.madescription=madescription;
	this[ nb ]=item;
	this.nb_item++;
}


Et enfin, dans l'instruction Z+= tu remplaces la deuxième occurence de :
tjs_base[ i ].page

par
tjs_base[ i ].madescription
Merci de ta réponse, c'est exactement ce que je cherchais depuis une bonne semaine, et ça fonctionne parfaitement ! Smiley cligne