Boucles imbriquées

zeitoun69 Messages postés 57 Date d'inscription   Statut Membre Dernière intervention   -  
zeitoun69 Messages postés 57 Date d'inscription   Statut Membre Dernière intervention   -
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

A.Nonymous
 
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   Statut Membre Dernière intervention   5
 
Merci la solution fonctionne !
0