[RESOLU] problème avec div conditionnelle selon input radio

Avatar de l’utilisateur
Eléphanteau du PHP | 14 Messages

19 févr. 2017, 16:07

Bonjour à toutes et à tous,

je sèche depuis plusieurs jours sur un problème et je ne trouve nulle part la solution.
j'ai un formulaire et en fonction du bouton radio coché j'ai une div conditionnelle.

mon code javascript

Code : Tout sélectionner

<script type="text/javascript"> function choix(id){ for( var i = 1; i <= 14; i++){ if(i == id){ document.getElementById('div_'+ i).style.display = 'block'; } else{ document.getElementById('div_'+ i).style.display ='none'; } } } </script>
mon code HTML

Code : Tout sélectionner

<input name="choix" type="radio" id="lieu1" value="1" onclick="choix(1)">choix 1 <input name="choix" type="radio" id="lieu2" value="2" onclick="choix(2)">choix 2 <div id="div_1" style="display:none" > choix 1</div> <div id="div_2" style="display:none" > choix 2</div>
Tout fonctionne impeccable dans le cas où ce formulaire apparaît pour la première fois à l'internaute.
Mais si je mémorise les choix de l'internaute et que je lui donne la possibilité par la suite de pouvoir modifier son choix...

Mon formulaire se présenterait ainsi

Code : Tout sélectionner

<input choix="lieu" type="radio" id="lieu1" value="1" onclick="choix(1)" <? if($resultat->choix==1){?>checked<? }?>>choix 1 <input name="choix" type="radio" id="lieu2" value="2" onclick="choix(2)" <? if($resultat->choix==2){?>checked<? }?>>choix 2 <div id="div_1" style="display:none" > choix 1</div> <div id="div_2" style="display:none" > choix 2</div>
cela ne fonctionne pas puisque l'internaute en arrivant sur le formulaire de modification ne clique pas sur le bouton radio, il est déjà coché donc le "onclick" ne peut pas marcher!

Comment faire pour que cela affiche la div qu'il faut lorsque le bouton est déjà coché, tout en conservant le fait de pouvoir changer de div si l'internaute modifie son choix?

merci.

Mammouth du PHP | 1238 Messages

19 févr. 2017, 18:03

il faut que tu fasse la même chose sur le display:none; de tes divs, pour que la div soit déjà affichée si le bouton est coché
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone de rubik's cube
Ingénieur Industriel Chimie / Biochimie

Avatar de l’utilisateur
Eléphanteau du PHP | 14 Messages

19 févr. 2017, 22:11

la même chose?
que dois-je changer ou ajouter concrètement?

merci à toi.

Mammouth du PHP | 1238 Messages

19 févr. 2017, 23:34

sans garantie, car j'ai pas toutes les infos. et il te faudrait éviter les erreur de type Notice
utilise aussi des balise php complète <?php et pas <?
<input choix="lieu" type="radio" id="lieu1"  value="1"  onclick="choix(1)" <?php if($resultat->choix==1){?>checked<?php }?>>choix 1
  <input name="choix" type="radio"  id="lieu2" value="2" onclick="choix(2)" <?php if($resultat->choix==2){?>checked<?php }?>>choix 2
  
  <div id="div_1" style="display:<?php if($resultat->choix==1){?>block<?php else{?>none<?php }?>" >
    choix 1</div>
    
      <div id="div_2" style="display:<?php if($resultat->choix==2){?>block<?php else{?>none<?php }?>" >
    choix 2</div>
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone de rubik's cube
Ingénieur Industriel Chimie / Biochimie

Avatar de l’utilisateur
Eléphanteau du PHP | 14 Messages

23 févr. 2017, 09:48

merci à toi, cela fonctionne.