Boucles imbriquées

Fermé
zeitoun69 Messages postés 57 Date d'inscription vendredi 20 juillet 2007 Statut Membre Dernière intervention 27 juin 2013 - 1 déc. 2012 à 12:08
zeitoun69 Messages postés 57 Date d'inscription vendredi 20 juillet 2007 Statut Membre Dernière intervention 27 juin 2013 - 15 déc. 2012 à 14:28
Bonjour,
je souhaite faire un formulaire de recherche en javascript, j'arrive à faire la sélection lorsque la recherche porte sur un choix unique mais si l'utilisateur peut choisir plusieurs possibilités sur un critère mon code ne fonctionne pas

voici mon code
for (var i = 0;i < poiJson.length; i++) {

//critère 1 - plusieurs choix possible
for (var l = 0; l < document.controls_arrdt.ville.length; l++) {
if (document.controls_arrdt.ville[l].checked) { var city = document.controls_arrdt.ville[l].value; }

//critère 2 je sélectionne tous les résulats dont la valeur est supérieure à la séletion
for (var j = 0; j < document.controls.type.length; j++) {
if (document.controls.type[j].checked) {
var type = document.controls.type[j].value;
}
}
if (type2 > type) {
type = type2;
for (var g = 0; g < document.controls.type.length; g++) {
if (document.controls.type[g].value == type2 ) {
document.controls.type[g].checked = true;
} else {document.controls.type[g].checked = false;}
}
}
//critère 3
if (document.controls.nouveaute.checked || nouveau == 1 ) {var nouveaute = 1;} else {var nouveaute = 0;}

// critère 4
if (document.controls.promo.checked || promo0 == 1) {var promo2 = 1;} else {var promo2 = 0;}
if (promo3 >= promo2 && news >= nouveaute && capac >= type && codeP == city ) {

//affichage des résultats

//fin if conditions multiples
}
//fin for ville
}
//fin for poijson
}


Dans l'affichage des résultats, les éléments affichés sont les bons mais ils sont répétés 16 fois sachant que le permier critère à 16 instances ...

Merci d'avance pour votre aide


2 réponses

Sans HTML, ce n'est pas pratique d'étudier.

Peut-être que ceci pourrait fonctionner :
A la place de :
if (document.controls_arrdt.ville[l].checked) {
	var city = document.controls_arrdt.ville[l].value;
}

Mettre :
var city;
if (document.controls_arrdt.ville[l].checked) {
	city = document.controls_arrdt.ville[l].value;
}else{
	city = null;
}
0
zeitoun69 Messages postés 57 Date d'inscription vendredi 20 juillet 2007 Statut Membre Dernière intervention 27 juin 2013 5
15 déc. 2012 à 14:28
Merci la solution fonctionne !
0