[resolu][PHP/JS] Afficher div via selection dans une liste/radio

Afficher div via selection dans une liste/radio [resolu][PHP/JS] - HTML/CSS - Programmation

Marsh Posté le 20-12-2007 à 17:44:21    

Bonjour,
 
Apres plusieurs recherches, je ne trouve toujours pas ma solution, je me décide donc à vous demandez ! :)
Voici mon porblème :
Dans un formulaire, sur une balise <select> je dois afficher un champs de formulaire supplémentaire si option1 est selectionné.
 
Je pense que c'est possible de le faire facilement mais je n'y arrive pas ! :o
 
Mes piste m'on fait partir vers onchange en js mais si je valide par submit le formulaire je lance une requete pour inscrire mes données dans une base, je ne peux donc pas valider le formulaire.
 
Un peu (beaucoup ?) d'aide me serait bien utile ;)
 
Merci d'avance
 
BN


Message édité par eliote le 04-01-2008 à 11:36:59
Reply

Marsh Posté le 20-12-2007 à 17:44:21   

Reply

Marsh Posté le 30-12-2007 à 01:07:53    

dans ton select tu rajoutes :

Code :
  1. onchange="if( this.selectedIndex==1){ document.getElementById('monDiv').style.display='block'; }else{ document.getElementById('monDiv').style.display='none'; }"


Edit : En adaptant bien sur a tes noms de variables :)


Message édité par the_bigboo le 30-12-2007 à 01:08:31
Reply

Marsh Posté le 31-12-2007 à 12:55:12    

avec un operateur ternaire ca prend moins de place :  
onchange="document.getElementById('monDiv').style.display= (this.selectedIndex==1) ? 'block' : 'none';"

Reply

Marsh Posté le 03-01-2008 à 09:51:32    

Bonjour et merci pour vos reponses,  
 
Comment puis je faire une selection sur deux champs de la liste ? En gros je veux afficher si selection : fournisseur ou client , les champs nom et ville
 
J'utilise la solution de Gasu35.
 
le premier affichage du formulaire m'affiche tous les champs, c'est seulement lorsque je selectionne un champ autre que fournisseur que le champ nom disparait, pourriez m'indiquer comment résoudre le problème.
 
Merci d'avance et bonne année 2008 !


Message édité par eliote le 03-01-2008 à 10:14:10
Reply

Marsh Posté le 03-01-2008 à 10:18:51    

Dans ce cas c'est plus intéressant d'utiliser les valeurs plus que le selectedIndex :

Code :
  1. onchange="document.getElementById('monDiv').style.display= (this.options[this.selectedIndex].value== 'fournisseur' || this.options[this.selectedIndex].value=='client' ) ? 'block' : 'none';"

Reply

Marsh Posté le 03-01-2008 à 10:27:01    

Merci pour votre réponse rapide, ca fonctionne nickel, par contre au premier affichage du formulaire il m'affiche toujours le selected que je veux afficher que si on selectionne fournisseur.
 
J'essaye avec <div id="pr1" style="display:none"> mais cela ne fonctionne pas pour cacher le div


Message édité par eliote le 03-01-2008 à 11:41:37
Reply

Marsh Posté le 03-01-2008 à 12:00:54    

déjà il manque le ; apres "none", ensuite utilises les balises "cpp" pour le code :)

Reply

Marsh Posté le 03-01-2008 à 12:08:14    

Code :
  1. <select name="zs_secteur" onchange="document.getElementById('four/stt').style.display= (this.options[this.selectedIndex].value== 'FOURNISSEUR/STT' || this.options[this.selectedIndex].value=='GESTE COMMERCIAL' ) ? 'block' : 'none';">


...

Code :
  1. <div id='four/stt' style='display:none;'>
  2. <tr class="Stylenormal" bgcolor="#EEF5F9">
  3.    <td width="400" >
  4.     Fournisseur /sous-traitant :
  5.     <?php if ((($mode == "view"&&$etat != "EC" )&&$_SESSION['login'] != 'admin')||$etat == "NCV" ){ echo "<b>".$fournisseur."</b>"; }else{ ?>
  6.      <input type="text" name="zs_nom_four" value="<?php  echo  $fournisseur; ?>"/>
  7.     <?php } ?>
  8.    </td>
  9.    <td width="400">Réclamation :
  10.    <?php if ((($mode == "view"&&$etat != "EC" )&&$_SESSION['login'] != 'admin')||$etat == "NCV" ){ echo "<b>".$reclamation."</b>"; }else{ ?>
  11.     <input type="radio" id="reclam/four" name="zs_reclamation" value="Oui" <?php  if( $reclamation =='Oui') { echo 'checked'; } ?>/>Oui <input type="radio" name="zs_reclamation" value="Non" <?php if( $reclamation =='Non') { echo 'checked'; } ?>/>Non
  12.     <?php } ?>
  13.    </td>
  14.   </tr>
  15.   </div>


 
Mon div s'affiche quand meme, à la premiere visualisation de mon formulaire, je ne vois pas pourquoi.
Je n'utilise prartiquement jamais de js, je suis un peu perdu sur ce langage.
 
Merci d'avance de votre aide.


Message édité par eliote le 03-01-2008 à 12:10:52
Reply

Marsh Posté le 04-01-2008 à 10:26:14    

J'ai supprimé mon div et j'ai mis l'id dans la ligne du tableau, ça fonctionne.
 
Je cherche maintenant à afficher une ligne via un bouton radio.
cad, si le bouton radio est coché, j'affiche d'autre option du formulaire (textarea), si on decoche l'option je masque les options.
 
[cpp]oncchange="document.getElementById('reparation').style.display= (this.selected) ? 'block' : 'none';"(/cpp]
 
Cette ligne fonctionne mal, à l'affichage les options sont visibles, quand je selectionne le bouton les options sont toujours visibles et lorsque je selectionne un autre bouton les options disparaissent :-(
 
Je suis une buse sur le js, vous pouvez m'eclairer ?
 
Merci d'avance.


Message édité par eliote le 04-01-2008 à 11:02:07
Reply

Marsh Posté le 04-01-2008 à 11:34:17    

sur le bouton sur lequel on veut afficher les options :

Code :
  1. onclick="document.getElementById('reparation').style.display= (this.value) ? 'block' : 'none';"


 
Sur les autres boutons : (fonction)

Code :
  1. onclick="masquer('reparation','none')"
  2. <script language="javascript">
  3. function masquer (id, value) {
  4.  document.getElementById(id).style.display = value;
  5. }
  6. </script>


Message édité par eliote le 04-01-2008 à 11:36:22
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed