Recherche accélérée par tableau

Pour toutes les discussions javascript, jQuery et autres frameworks
Répondre
Pugnare
Messages : 2
Enregistré le : 28 nov. 2018, 02:39

Recherche accélérée par tableau

Message par Pugnare » 28 nov. 2018, 02:50

Bonjour,

Je débute en JS,pour mon apprentissage je me suis pris un livre que j'ai trouvé d'occasion. Le guide complet JAVA SCRIPT 7émé édition.
Mais voila je suis bloqué au chapitre 4 - 4,5 Cas pratique: recherche accélérée par tableau.

j'ai beau regardé et recherche dans le code je ne vois pas ce qui bloque. j'ai retrouvé les fichiers source, mais manque de bol le seul fichier qui manque c'est celui dont j'ai besoin.

Code : Tout sélectionner

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">

<title>Document sans nom</title>

<script type ="text/javascript">

var liste = new creerListe();

liste.Add("Afghanistan");
liste.Add("Afrique du Sud");
liste.Add("Albanie");
liste.Add("Algérie");
liste.Add("Allemagne");
liste.Add("Autriche");
liste.Add("France");
liste.Add("Grèce");
liste.Add("Italie");
liste.Add("Belgique");
liste.Add("Malte");
liste.Add("Luxembourg");
liste.Add("Pays-Bas");
liste.Add("Pologne");
liste.Add("Suède");
liste.Add("Croatie");
liste.Add("Danemark");
liste.Add("Rép. Tchèque");
liste.Add("Hongrie");
liste.Add("Chypre");
liste.Add("Lituanie");
liste.Add("Espagne");
liste.Add("Lettonie");
liste.Add("Portugal");
liste.Add("Slovénie");
liste.Add("Irlande");
liste.Add("Royaume-Uni");

function creerListe(){
	this.search = "";
	this.nb = 0;
	this.Add = ajouterItem;
	this.Afficher = afficherListe;
	this.MAJ = MAJListe;
	this.getNom = getNomListe;
	}

function ajouterItem(item){
	this[this.nb] = item
	this.nb++;
	}                                                                                                                                                                                                                                                                                                                       
function afficherListe(){
	if(document.getElementById){
		document.write("<div id=\"divPays\"style=\"\"></div>");
		}
	}
function getNomListe(indice){
	document.forms["monForm"].search.value = this[indice];
	}
function MAJListe(txt){
	var txtAff="";
	var nb=0;
	if(txt==""){
		document.getElementById("divPays").innerHTML="";
		}
		if((txt!=this.search)&&(txt!="")){
			this.search=txt;
			for(var i=0;i<this.nb; i++){
				if(this[i].substring(0,txt.length).toUpperCase()==txt.toUpperCase()){
					txtAff+= "<a href=\"javascript:liste.getNom("+i+")\">"+this[i]+"</a><br/>";
					}
				}
				document.getElementById("divPays").innerHTML=txtAff;
			}
	}
	
function listeCheck(){
	liste.MAJ(document.forms["monForm"].search.value);
	setTimeout("listeCheck()",100);
	}


	

</script>
</head>

<body>
<form name="monForm">
    pays : 
    <br /><input id="input" type="text" name="search"><br />
           
<script type="javascript">
	liste.Afficher();
	listeCheck();
</script>

</form>	
<br /><p>Liste des pays</p><br/>
</body>
</html>


je pense ne pas avoir fait d'erreur. pourtant il ne fonction pas. merci de votre aide.

Avatar du membre
webmaster
Administrateur du site
Messages : 563
Enregistré le : 28 févr. 2017, 15:19

Re: Recherche accélérée par tableau

Message par webmaster » 28 nov. 2018, 10:51

Bonjour

Très bon choix de livre pour apprendre :)

Le probleme venait simplement de la ligne

Code : Tout sélectionner

<script type="javascript">
	liste.Afficher();
	listeCheck();
</script>
qui ne s'exécutait pas à cause du type de script
il faut écrire type="text/javascript"

Le JS est vraiment frustrant !
TJS : 25 ans et mon livre Tout JavaScript chez Dunod
https://www.toutjavascript.com/livre/index.php

Pugnare
Messages : 2
Enregistré le : 28 nov. 2018, 02:39

Re: Recherche accélérée par tableau

Message par Pugnare » 29 nov. 2018, 16:08

Bonjour, Merci de ta réponse. effectivement j'avais bien mal tapé la attribue. :?

encore merci :)

Répondre