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 -
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
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 :
Mettre :
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; }