Problème entre les if et les else...
2 participants
Forum gratuit : Le forum des forums actifs :: Entraide & Support... :: Problème avec un script, un code :: Archives des problèmes avec un code
Page 1 sur 1 • Partagez
Problème entre les if et les else...
Bonjour !
Je viens vous voir pour un problème de javascript qui ne marche pas comme je veux.
Voici le code en question :
Il s'agit d'un code pour un formulaire, qui va écrire dans le message ce qui correspond au choix fait par l'utilisateur. Il s'agit de différents boutons radio, dont deux choix on des spécificités particulières : Le choix [1] affiche deux checkbox si on le coche, et donc je veux afficher un résultat en fonction de celle(s) qui seront cochées. Le choix [7] affiche un champ texte si on le coche et je veux afficher ce qu'aura écrit l'utilisateur.
En dehors de ça si un des autres choix (donc les choix 0,2,3,4,5 et 6) est coché j'ai besoin qu'il affiche un déterminant (un ou une) en fonction de si c'est un choix de genre masculin ou féminin.
Mais il doit y avoir quelque chose que je ne fais pas bien parce-que là avec le code que je vous ai mis quand je clique sur le bouton d'envoi du formulaire il m'affiche systématiquement l'alerte, même si j'ai coché un des choix.
Autre problème, le
Il doit y avoir quelque chose que je n'ai pas compris dans les if et les else mais j'ai beau avoir lu et relu plusieurs explications à ce sujet sur différents sites je ne comprends pas quoi :s
Merci pour votre aide !
Je viens vous voir pour un problème de javascript qui ne marche pas comme je veux.
Voici le code en question :
- Code:
// RADIO
for(var i = 0; i < form.demande_type.length; i++)
{
if(form.demande_type[i].checked == true) {
if(form.demande_type[1].checked == true) {
if(form.pa_qeel[0].checked == true && form.pa_qeel[1].checked == true) {txt_message += '<b>une PA et un Qeel</b>\n\n';}
else if (form.pa_qeel[0].checked == true) {txt_message += 'une <b>PA</b>';}
else if (form.pa_qeel[1].checked == true) {txt_message += 'un <b>Qeel</b>';}
}
if(form.demande_type[7].checked == true) {txt_message += '<b>' + form.divers_type.value + '</b>\n\n';}
if(form.demande_type[0].checked == true || form.demande_type[4].checked == true) {txt_message += 'un <b>' + form.demande_type[i].value + '</b>\n\n';}
else {txt_message += 'une <b>' + form.demande_type[i].value + '</b>\n\n';}
}
else {alert("Vous n'avez pas choisi votre type de demande !");
return false;}
}
Il s'agit d'un code pour un formulaire, qui va écrire dans le message ce qui correspond au choix fait par l'utilisateur. Il s'agit de différents boutons radio, dont deux choix on des spécificités particulières : Le choix [1] affiche deux checkbox si on le coche, et donc je veux afficher un résultat en fonction de celle(s) qui seront cochées. Le choix [7] affiche un champ texte si on le coche et je veux afficher ce qu'aura écrit l'utilisateur.
En dehors de ça si un des autres choix (donc les choix 0,2,3,4,5 et 6) est coché j'ai besoin qu'il affiche un déterminant (un ou une) en fonction de si c'est un choix de genre masculin ou féminin.
Mais il doit y avoir quelque chose que je ne fais pas bien parce-que là avec le code que je vous ai mis quand je clique sur le bouton d'envoi du formulaire il m'affiche systématiquement l'alerte, même si j'ai coché un des choix.
Autre problème, le
- Code:
else {txt_message += 'une <b>' + form.demande_type[i].value + '</b>\n\n';}
Il doit y avoir quelque chose que je n'ai pas compris dans les if et les else mais j'ai beau avoir lu et relu plusieurs explications à ce sujet sur différents sites je ne comprends pas quoi :s
Merci pour votre aide !
Dernière édition par Evaliah le Jeu 16 Jan 2014 - 22:56, édité 2 fois
Re: Problème entre les if et les else...
bonsoir,
Peut-on voir le code complet , ou du moins , la partie html du formulaire concernant ce script ?
il y a une fonction supplémentaire pour faire apparaitre les deux cases à cocher ?
Une autre fonction ?
Comme il n'y a pas assez d'éléments pour traiter le problème , il faudrait plus d'infos , merci .
Peut-on voir le code complet , ou du moins , la partie html du formulaire concernant ce script ?
Le choix [1] affiche deux checkbox si on le coche
il y a une fonction supplémentaire pour faire apparaitre les deux cases à cocher ?
Le choix [7] affiche un champ texte si on le coche et je veux afficher ce qu'aura écrit l'utilisateur.
Une autre fonction ?
Comme il n'y a pas assez d'éléments pour traiter le problème , il faudrait plus d'infos , merci .
Re: Problème entre les if et les else...
Merci pour ta réponse
Je joins une plus grande partie du formulaire alors, j'espère que ça pourra aider
Je joins une plus grande partie du formulaire alors, j'espère que ça pourra aider
- Code:
code retiré car il n'est pas utile dans la résolution du problème :)
Dernière édition par Evaliah le Jeu 16 Jan 2014 - 22:16, édité 1 fois
Re: Problème entre les if et les else...
Un petit message pour dire que ma question est toujours d'actualité
Re: Problème entre les if et les else...
Bonjour,
Vous n'êtes pas oubliée ...
comme j'ai eu des petits soucis d'ordi , vous n'aurez la réponse que ce soir ...
Merci de votre patience .
Vous n'êtes pas oubliée ...
comme j'ai eu des petits soucis d'ordi , vous n'aurez la réponse que ce soir ...
Merci de votre patience .
Re: Problème entre les if et les else...
D'accord merci j'attends ce soir avec impatience alors
Edit 18h56 : pour l'heure j'ai résolu mon problème de vérification de radio coché. J'ai mis ceci :
J'en suis encore à essayer d'obtenir le résultat que je veux sur le détail selon le radio coché...
Edit 21h23 : Je progresse
J'arrive maintenant à afficher le bon déterminant (un, une, des) sans aucun bug, mais pour l'instant sans tenir compte des cases à cocher ou du champ à remplir pour les choix [1] et [7] des boutons radio
Voici le code à ce stade :
Edit 18h56 : pour l'heure j'ai résolu mon problème de vérification de radio coché. J'ai mis ceci :
- Code:
// vérification type coché
for(i = 0; i < form.demande_type.length; i++){
if(form.demande_type[i].checked) return true;
}
alert("Vous n'avez pas choisi votre type de demande !");
return false;
J'en suis encore à essayer d'obtenir le résultat que je veux sur le détail selon le radio coché...
Edit 21h23 : Je progresse
J'arrive maintenant à afficher le bon déterminant (un, une, des) sans aucun bug, mais pour l'instant sans tenir compte des cases à cocher ou du champ à remplir pour les choix [1] et [7] des boutons radio
Voici le code à ce stade :
- Code:
// RADIO
for(var i = 0; i < form.demande_type.length; i++)
{
if(form.demande_type[i].checked == true) {
if(form.demande_type[0].checked == true || form.demande_type[4].checked == true) {txt_message += "un " + form.demande_type[i].value; }
else if(form.demande_type[2].checked == false) {txt_message += "une " + form.demande_type[i].value;}
else if(form.demande_type[2].checked == true) {txt_message += "des " + form.demande_type[i].value;}
}
}
Re: Problème entre les if et les else...
re,
Remplacez le script que vous avez fourni au premier message par celui ci :
Remplacez le script que vous avez fourni au premier message par celui ci :
- Code:
txt_message += '<div class="formulaire_r_descript_f" style="font-style:normal">J\'aimerais ';
// RADIO
var dem = form.demande_type;
if(!dem[0].checked && !dem[1].checked && !dem[2].checked && !dem[3].checked && !dem[4].checked && !dem[5].checked && !dem[6].checked && !dem[7].checked)
{alert("Vous n'avez pas choisi votre type de demande !");return false;}
if(dem[0].checked) {txt_message += 'un <b>' + form.demande_type[0].value + '</b>\n\n';}
else if(dem[1].checked && !form.pa_qeel[0].checked && !form.pa_qeel[1].checked)
{alert("Vous n'avez pas coché de case !");return false;}
else if(dem[1].checked && form.pa_qeel[0].checked && form.pa_qeel[1].checked) {txt_message += '<b>une PA et un Qeel</b>\n\n';}
else if (dem[1].checked && form.pa_qeel[0].checked && !form.pa_qeel[1].checked) {txt_message += 'une <b>PA</b>';}
else if (dem[1].checked && !form.pa_qeel[0].checked && form.pa_qeel[1].checked) {txt_message += 'un <b>Qeel</b>';}
else if(dem[2].checked) {txt_message += 'des <b>' + form.demande_type[2].value + '</b>\n\n';}
else if(dem[3].checked) {txt_message += 'une <b>' + form.demande_type[3].value + '</b>\n\n';}
else if(dem[4].checked) {txt_message += 'un <b>' + form.demande_type[4].value + '</b>\n\n';}
else if(dem[5].checked) {txt_message += 'une <b>' + form.demande_type[5].value + '</b>\n\n';}
else if(dem[6].checked) {txt_message += 'une <b>' + form.demande_type[6].value + '</b>\n\n';}
else if(dem[7].checked) {txt_message += '<b>' + form.divers_type.value + '</b>\n\n';}
txt_message += 'la suite blabla ...';
Re: Problème entre les if et les else...
Merci pour votre réponse
J'ai bien lu le contenu de votre code et je vois que vous choisissez de détailler chaque résultat selon le bouton radio coché, le tout avec des else if.
De mon côté après avoir réussi à me débloquer comme je l'ai expliqué dans mes édits dans le message précédent je suis arrivé à ce code :
Par contre ce que j'aimerais vraiment savoir avant de mettre ce sujet comme résolu c'est pourquoi mon premier essai n'a pas marché. Est-ce parce-que j'avais mis des if au lieu d'else if ? Autre chose ? Je sais que mon code final est plus propre que celui que j'avais présenté mais en dehors de ça je ne suis pas certaine de comprendre pourquoi le premier ne marchait pas, et le savoir m'aiderait à ne pas refaire l'erreur
Merci en tout cas pour le temps que vous avez passé pour faire le code que vous proposez
J'ai bien lu le contenu de votre code et je vois que vous choisissez de détailler chaque résultat selon le bouton radio coché, le tout avec des else if.
De mon côté après avoir réussi à me débloquer comme je l'ai expliqué dans mes édits dans le message précédent je suis arrivé à ce code :
- Code:
// RADIO
for(var i = 0; i < form.demande_type.length; i++)
{
if(form.demande_type[i].checked == true) {
if(form.demande_type[0].checked == true || form.demande_type[4].checked == true) {txt_message += "un " + form.demande_type[i].value; }
else if(form.demande_type[2].checked == false) {
if(form.demande_type[7].checked == true) {txt_message += form.divers_type.value;}
else if(form.demande_type[1].checked == true) {
if(form.pa_qeel[0].checked == true && form.pa_qeel[1].checked == true){txt_message += "une PA et un Qeel";}
else if(form.pa_qeel[0].checked == true){txt_message += "une PA";}
else {txt_message += "un Qeel";}
}
else {txt_message += "une " + form.demande_type[i].value;}
}
else if(form.demande_type[2].checked == true) {txt_message += "des " + form.demande_type[i].value;}
}
}
Par contre ce que j'aimerais vraiment savoir avant de mettre ce sujet comme résolu c'est pourquoi mon premier essai n'a pas marché. Est-ce parce-que j'avais mis des if au lieu d'else if ? Autre chose ? Je sais que mon code final est plus propre que celui que j'avais présenté mais en dehors de ça je ne suis pas certaine de comprendre pourquoi le premier ne marchait pas, et le savoir m'aiderait à ne pas refaire l'erreur
Merci en tout cas pour le temps que vous avez passé pour faire le code que vous proposez
Re: Problème entre les if et les else...
pour faire plus simple , il aurait fallu mettre les articles "un , une , des" dans les "values" des cases radios ...
sinon , un peu plus simple , avec l'alerte à la fin du bout de code :
pour le souci du début , je pense que c'est une imbrication des if qui pose problème ...
pour votre dernier code , les cases à cochées peuvent rester vides et il y aura quand même un envoi ?
sinon , un peu plus simple , avec l'alerte à la fin du bout de code :
- Code:
txt_message += '<div class="formulaire_r_descript_f" style="font-style:normal">J\'aimerais ';
// RADIO
var dem = form.demande_type;
if(dem[0].checked) {txt_message += 'un <b>' + form.demande_type[0].value + '</b>\n\n';}
else if(dem[1].checked && !form.pa_qeel[0].checked && !form.pa_qeel[1].checked)
{alert("Vous n'avez pas coché de case !");return false;}
else if(dem[1].checked && form.pa_qeel[0].checked && form.pa_qeel[1].checked) {txt_message += '<b>une PA et un Qeel</b>\n\n';}
else if (dem[1].checked && form.pa_qeel[0].checked && !form.pa_qeel[1].checked) {txt_message += 'une <b>PA</b>\n\n';}
else if (dem[1].checked && !form.pa_qeel[0].checked && form.pa_qeel[1].checked) {txt_message += 'un <b>Qeel</b>\n\n';}
else if(dem[2].checked) {txt_message += 'des <b>' + form.demande_type[2].value + '</b>\n\n';}
else if(dem[3].checked) {txt_message += 'une <b>' + form.demande_type[3].value + '</b>\n\n';}
else if(dem[4].checked) {txt_message += 'un <b>' + form.demande_type[4].value + '</b>\n\n';}
else if(dem[5].checked) {txt_message += 'une <b>' + form.demande_type[5].value + '</b>\n\n';}
else if(dem[6].checked) {txt_message += 'une <b>' + form.demande_type[6].value + '</b>\n\n';}
else if(dem[7].checked) {txt_message += '<b>' + form.divers_type.value + '</b>\n\n';}
else
{alert("Vous n'avez pas choisi votre type de demande !");return false;}
txt_message += 'la suite blabla ...';
pour le souci du début , je pense que c'est une imbrication des if qui pose problème ...
pour votre dernier code , les cases à cochées peuvent rester vides et il y aura quand même un envoi ?
Re: Problème entre les if et les else...
Scoubifitz a écrit:pour faire plus simple , il aurait fallu mettre les articles "un , une , des" dans les "values" des cases radios ...
Oui je sais, ça aurait été plus simple, mais en fait ces values servent également pour le titre du message qui sera posté, qui est au final de la forme : " ?. Codage de Formulaire pour [nom_forum] " (en prenant par exemple le codage d'un formulaire), donc j'ai fait en sorte que tous les values puissent être précédées de "de" pour standardiser le titre. Et puis ça m'a permis de progresser et ça ça n'a pas de prix !
D'accord pour l'imbrication des "if", je m'en doutais un peu d'où le titre de mon message, je pense que c'est à force de pratique que j'arriverai à éviter ce genre d'erreur =)
Et concernant mon dernier code si aucun bouton radio n'est coché ou si aucune des deux cases du bouton radio [1] n'est cochée j'ai mis ceci tout à la fin de ma partie js :
- Code:
// vérification type coché
for(i = 0; i < form.demande_type.length; i++){
if(form.demande_type[i].checked && form.demande_type[1].checked == false) return true;
else if(form.demande_type[1].checked == true){
if(form.pa_qeel[0].checked == true || form.pa_qeel[1].checked == true){return true;}
}
}
alert("Vous n'avez pas choisi votre type de demande !");
return false;
}
Merci encore pour le temps que vous avez pris pour m'aider à résoudre ce problème
=> Résolu
Sujets similaires
» problème entre GIF et JPG
» Problème d' "interférence" entre 2 codes Js
» Problème de compatibilité entre navigateur
» Problème d'espace entre les catégories
» Probleme CSS: Marge entre profil et message !
» Problème d' "interférence" entre 2 codes Js
» Problème de compatibilité entre navigateur
» Problème d'espace entre les catégories
» Probleme CSS: Marge entre profil et message !
Forum gratuit : Le forum des forums actifs :: Entraide & Support... :: Problème avec un script, un code :: Archives des problèmes avec un code
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum