Double conditionnement d'une question ??

Fermé
DAdvantages - 16 janv. 2013 à 10:10
 GoTchA - 23 oct. 2013 à 09:39
Bonjour à tous !

J'aurais besoin de votre savoir sur du codage java car je suis un peu noob à ce niveau là.

Le contexte : Pour mon boulot, je dois créer des questionnaires online divers et variés.
Pour le cas présent, j'ai 1 question de profil qui conditionne les réponses possibles dans une autre question.

Bref jusque là je m'en sortais pas mal avec la fonction if, mais là j'ai un souci : disons que j'ai non pas 1 mais 2 questions de profil qui conditionnent les réponses dans une 3eme question.

En clair :
- Question de profil 1 que j'ai appelé "Iden2" "votre région" (8 modalités de réponse)
- Question de profil 2 que j'ai appelé "Iden6" "votre activité" (8 modalités de réponse)
- Question conditionnée que j'ai appelé "Appli19b" "logiciel utilisé"

Chacune des 8 région a sa propre liste de logiciel utilisé (donc si le répondant coche "Région A", il aura, en appli19b, la liste de logiciels dispos dans sa région A, s'il coche "Région X" il aura la liste de la région X etc)

Il se trouve que dans Iden6, l'un des activité (Manufacturing) possède sa propre liste de logiciels.

Or avec mon bidouillage JS, je n'arrive à afficher que la liste Region OU la liste activité, selon celui que je coche en dernier...

Il faudrait donc que je puisse trouver un code me permettant de combiner les 2 listes :
Si le répondant coche "Région A" en iden2 et "manufacturing" en iden6, il faudrait qu'en appli19b s'affiche la liste de la région A ET la liste manufacturing...

Donc je sèche totalement là dessus :(

Voici le code que j'ai pour l'instant dans mon JS (en espérant vous avoir copié le bon bout !)

var list1 = $('select[name="Appli19b"]').clone();
$('select[name="Iden2"]').change(
function(){
$('#focus').focus();
$('select[name="Appli19b"]').removeOption(/./);
$("#quAppli19b").show()
if(this.value == 1){
$('select[name="Appli19b"]').addOption(list1[0][1].value,list1[0][1].text);
$('select[name="Appli19b"]').addOption(list1[0][3].value,list1[0][3].text);


==> donc si en Iden2, on coche la valeur 1, alors tu affiches les valeurs 1 et 3 dans appli19b

Là dedans donc il faudrait rajouter un truc genre si Iden2 ==1 ET Iden6 == 4 (manufacturing), alors afficher valeurs 1 - 3 (liste régionA) - 4 - 5 (liste manufacturing) en appli19b

Est ce que quelqu'un saurait me dire comment faire cette combinaison ?

Merci vraiment BEAUCOUP les gens :)


A voir également:

3 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
Modifié par Alain_42 le 16/01/2013 à 10:57
ne confond pas java et javascript
ensuite ne serait-il pas plus simple et fonctionnel d'utiliser une base de donnée mysql par exemple, avec une table dont les champs seraient:
- region
- activite
- logiciels
et avec du php et de l'Ajax tu viendrait lire le contenu de cette table et afficher la liste en fonction des choix dans les listes region et activite

pour maintenir à jour tu n'aurait pas besoin de modifier dans ton code, mais dans la base de données avec un outil comme phpmyadmin par exemple.
0
Olàlàlàlàààààààà ! Merci pour tes suggestions :D Mais honnetement quand je dis que je suis une noob, c'est vrai ! :D Je n'ai appris que ce que je dois "refaire" à chaque fois pour mes enquêtes. Sortie de ça, je ne connais rien dutout ! Ni MySQL, ni php ni Ajax...je sais pas dutout à quoi ca ressemble :(
Ducoup je préfère éviter de m'aventurer là dedans vu que j'y connais encore moins de choses que sur JS -_-
0
Dorianne, pour mémo :

Je souhaite faire apparaitre Iden4 si :
Iden3 = choix N° 2
ET
Iden5 = Choix N° 31




$('select[name="Iden3"]').change(
function(){
var division = $('select[name="Iden5"]').val();

if ((this.value == 2) && (division == 31)) {
$("#quIden4").show();
$('select[name="Iden4"]').rules("add", { required: true});
}
else{
$("#quIden4transverse").hide();
clear_form_elements('#quIden4');
$('select[name="Iden4"]').rules("add", { required: false});

}
}
);


Mais je souhaite aussi que cela marche dans l'autre sens :

Je souhaite faire apparaitre Iden4 si :
Iden5 = Choix N° 31
ET
Iden3 = choix N° 2

$('select[name="Iden5"]').change(
function(){
var division = $('select[name="Iden3"]').val();

if ((this.value == 31) && (division == 2)) {
$("#quIden4").show();
$('select[name="Iden4"]').rules("add", { required: true});
}
else{
$("#quIden4").hide();
clear_form_elements('#quIden4');
$('select[name="Iden4"]').rules("add", { required: false});

}
}
);

A+!!
0