Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1773 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [?] Formulaire alternatif ! Qui apparauit suivant une option choisie !

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[?] Formulaire alternatif ! Qui apparauit suivant une option choisie !

n°300459
rainckill
Posté le 03-02-2003 à 20:49:02  profilanswer
 

j'ai une page formulaire.php, avec, bien sur un formulaire  :D Je souhaiterai que des option apparaisse si au préalable on a choisi "oui" a une case radio (si "non" qu'il affiche pas ces champs)...
 
Enfin, je parle la d'une case radio, mais ca peut etre une liste déroulante, and co... Mais, comment faire cela ? Je suppose avec du javascript ? Mais je connais aps ce langage, si c'est simple, quelqu'un pourrais t'il me donner le code ?
 
Merci  :hello:

mood
Publicité
Posté le 03-02-2003 à 20:49:02  profilanswer
 

n°300467
walli
Posté le 03-02-2003 à 21:08:20  profilanswer
 

Tu mets les champs que tu veux voir apparaitre ou non dans des div.
 
ex dans un tableau :

Code :
  1. <div id="informationLayer">
  2. <table>
  3.   <tr>
  4.     <td>information...</td>
  5.   </tr>
  6. </table>
  7. </div>


 
ensuite, dans ta case radio ou dans ta combo, tu appelles une fonction ex : 'afficheInfo()'
 
et dans ta fonction tu fais un truc du genre
<script>
 function afficheInfo()
 {
   suivant valeur..
   document.getElementById"informationLayer" ).style.display="none";
ou  
document.getElementById"informationLayer" ).style.display="";
 }
</script>  


Message édité par walli le 03-02-2003 à 21:14:04
n°300469
rainckill
Posté le 03-02-2003 à 21:18:02  profilanswer
 

Enfait voila mon cas exactement :
 
Je veux afficher TOUT les formulaires au départ (avec l'imput déterminant sélectionné par défault pour "oui" ), mais, si ce derneir est changé pour "non", alors, il supprime 2/3 champs du formulaire...
 
Etant un vrai n00bs en javascript, je peux pas me servir de ton code walli, mais meric pour ta partiipation, jvé essayer de comprnedre qd meme  :whistle:

n°300473
walli
Posté le 03-02-2003 à 21:34:14  profilanswer
 

rainckill a écrit :

Enfait voila mon cas exactement :
 
Je veux afficher TOUT les formulaires au départ (avec l'imput déterminant sélectionné par défault pour "oui" ), mais, si ce derneir est changé pour "non", alors, il supprime 2/3 champs du formulaire...
 
Etant un vrai n00bs en javascript, je peux pas me servir de ton code walli, mais meric pour ta partiipation, jvé essayer de comprnedre qd meme  :whistle:  


 
On peut y aller petit à petit si tu veux en regardant un peu ton code !

n°300475
rainckill
Posté le 03-02-2003 à 21:48:53  profilanswer
 

walli a écrit :


 
On peut y aller petit à petit si tu veux en regardant un peu ton code !
 


 
Oki, merci bien  :jap:
Donc, enfait, c'est un code tous simple de formulaire html :
 

Code :
  1. <FORM ENCTYPE="multipart/form-data" action="uploadimg.php" method="post">
  2. <b>Uploader une image !</b><br>
  3. <table cellpadding='0' cellspacing='0'>
  4. <tr><td>Faire profiter de ce fichier :</td>
  5. <td><input type="radio" name="profite" value="oui" checked> oui <input type="radio" name="profite" value="non"> non</td></tr>
  6.     <tr><td>Nom de l'image :</td>
  7. <td><input type="text" name="nomimg" size="20"></td></tr>
  8. <tr><td>Catégorie<br><font size="1">(à ignorer si vous avez répondu "non" précédemment)   </font></td>
  9. <td><select name="catimg">
  10. <option value="vide"> ------- Choisissez -------</option>
  11. <option value="Adulte"> Adulte</option>
  12. <option value="Jeux"> Jeux</option>
  13. <option value="Film/Anime"> Film/Anime</option>
  14. <option value="Sport"> Sport</option>
  15. <option value="Autre"> Autre</option>
  16. </select>
  17. </td></tr>
  18. <tr><td>Chemin du fichier :</td>
  19. <td><INPUT NAME="userimg" TYPE="file"></td></tr>
  20. <tr><td><center><input type="submit" value="Envoyer !"></center></td></tr>
  21. </table>


 
scuz, ia des table, td, et tr :-/
 
Bon, comme tu le voit, le radio est sur "oui"... => il y a els champs nomimg, et catimg qui apparaisse... par contre, j'aimerai que sie un membre choisisse "non" finalement, les champs cat (select) et nom (imput type text) disparaisse...

n°300506
walli
Posté le 03-02-2003 à 23:13:18  profilanswer
 

Voilà, ça va te donner qqchose dans le genre !
 

Code :
  1. <html>
  2. <head>
  3. <script language="JavaScript" >
  4. function visible()
  5. {
  6.   document.getElementById("layer" ).style.display="";
  7. }
  8. function invisible()
  9. {
  10.   document.getElementById("layer" ).style.display="none";
  11. }
  12. </script>
  13. </head>
  14. <body>
  15. <table cellpadding='0' cellspacing='0'>
  16.    <tr><td>Faire profiter de ce fichier :</td>
  17.    <td>
  18. <input type="radio" name="profite"  value="oui" checked onclick="visible();"> oui <input type="radio" name="profite"  value="non"  onclick="invisible()";> non</td></tr>
  19. <tr><td>
  20.       <div id="layer"><table><tr><td>Nom de l'image :</td>
  21.    <td><input type="text" name="nomimg" size="20"></td></tr>
  22.   <tr><td>Catégorie<br><font size="1">(à ignorer si vous avez répondu "non" précédemment)   </font></td>
  23.    <td><select name="catimg">
  24.    <option value="vide"> ------- Choisissez -------</option>
  25.    <option value="Adulte"> Adulte</option>
  26.    <option value="Jeux"> Jeux</option>
  27.    <option value="Film/Anime"> Film/Anime</option>
  28.    <option value="Sport"> Sport</option>
  29.    <option value="Autre"> Autre</option>
  30.   </select>
  31.   </td></tr>
  32.    <tr><td>Chemin du fichier :</td>
  33.    <td><INPUT NAME="userimg" TYPE="file"></td></tr>
  34.    <tr><td><center><input type="submit" value="Envoyer !"></center></td></tr></table>
  35.     </div></td></tr>
  36.   </table>
  37. </body>
  38. </html>


 
je sais pas exactement ce que tu veux cacher, mais ça te donnera une idée du code.

n°301288
rainckill
Posté le 04-02-2003 à 18:45:53  profilanswer
 

Oki, ca amrche impecable, merci ! j'ai un peu modifier le code mais la, c'est nickel ^^
 
merci wally ^^

n°325704
fbtheretur​n
Posté le 07-03-2003 à 10:00:07  profilanswer
 

excusez moi...  
 
Comment on peut faire la meme chose avec un bouton checkbox?
car la, c'est pas une case oui et une case non
mais la meme case oui ou non en fonction de la valeur que c'était...
J'ai essayé plusieurs trucs de "débrouille" mais ça ne marche pas...
Pouvez vous m'aider?

n°325740
fbtheretur​n
Posté le 07-03-2003 à 10:30:13  profilanswer
 

c'est correct ça au niveau de la syntaxe?
merci :-)  
 

Code :
  1. <html>
  2.   <head>
  3.   <script language="JavaScript" >
  4.   function visible()
  5.   { 
  6.       document.getElementById("layer" ).style.display="";
  7.   }
  8.   function invisible()
  9.   { 
  10.       document.getElementById("layer" ).style.display="none";
  11.   }
  12.   function affichage()
  13.   {
  14.   if (document.formulaire.entreprise.checked) invisible()
  15.   else visible();
  16.   }
  17.   </script>
  18.   </head>
  19.  
  20.   <body>
  21.   <form name="formulaire">
  22.   <table cellpadding='0' cellspacing='0'>
  23.   <td>Je m'inscris au nom d'une entreprise :</td>
  24.   <td> <input type="checkbox" name="entreprise" onclick="affichage();"
  25.        <? if($entreprise=="1" ) echo "CHECKED"; ?>
  26.           value="1" /></td>
  27.   <tr><td>
  28.   <div id="layer"><table>
  29.   <!--NOM ENTREPRISE-->
  30.           <tr>
  31.           <td>Nom entreprise:</td>
  32.           <td><input type="text" name="nom_ent" value="<?php echo $nom_ent ?>"></td>
  33.           </tr>
  34.       </table>
  35.       </div></td></tr>
  36.     </table>
  37.     </form>
  38.   </body>
  39.  
  40.   </html>

n°325748
walli
Posté le 07-03-2003 à 10:35:11  profilanswer
 

fbthereturn a écrit :

excusez moi...  
 
Comment on peut faire la meme chose avec un bouton checkbox?
car la, c'est pas une case oui et une case non
mais la meme case oui ou non en fonction de la valeur que c'était...
J'ai essayé plusieurs trucs de "débrouille" mais ça ne marche pas...
Pouvez vous m'aider?


 
tu mets une id différente pour chacun de tes boutons checkbox.
et sur les évènements OnClick ou OnChange de tes checkbox, tu appelles une fonction unique.
dans ta fonction, tu regardes la valeur de ta checkbox (checked ou pas) et suivant la valeur tu vas cacher ou afficher les champs que tu veux.
ex :  
une checkbox qui a pour id : 'checkbox1'
et deux champs qui ont pour id 'champ1' et 'champ2'
dans ta méthode :  

Code :
  1. if document.getElementById('checkbox1').checked='true'
  2. {
  3.     document.getElementById('champ1').style.display="";
  4.     document.getElementById('champ2').style.display="none";
  5. }

mood
Publicité
Posté le 07-03-2003 à 10:35:11  profilanswer
 

n°325802
fbtheretur​n
Posté le 07-03-2003 à 11:15:47  profilanswer
 

je n'ai pas bien compris pour les champs.. à quoi ils correspondent...
 
mais j'ai fait ça:  
et le problème c'est que je ne peux cliquer qu'une fois
ensuite, le bouton checkbox reste bloqué sur "sélectionné"
 

Code :
  1. <html>
  2.   <head>
  3.   <script language="JavaScript" >
  4.   function visible()
  5.   { 
  6.       document.getElementById("layer" ).style.display="";
  7.   }
  8.   function invisible()
  9.   { 
  10.       document.getElementById("layer" ).style.display="none";
  11.   }
  12.   function affichage()
  13.   {
  14.   if (document.getElementById("essai" ).checked='true') invisible()
  15.   else visible();
  16.   }
  17.   </script>
  18.   </head>
  19.  
  20.   <body>
  21.   <form name="formulaire">
  22.   <table cellpadding='0' cellspacing='0'>
  23.   <td>Je m'inscris au nom d'une entreprise :</td>
  24.   <td> <input type="checkbox" id="essai" name="entreprise" onclick="affichage();"
  25.        <? if($entreprise=="1" ) echo "CHECKED"; ?>
  26.           value="1" /></td>
  27.   <tr><td>
  28.   <div id="layer"> <table>
  29.   <!--NOM ENTREPRISE-->
  30.           <tr>
  31.           <td>Nom entreprise:</td>
  32.           <td><input type="text" name="nom_ent" value="<?php echo $nom_ent ?>"></td>
  33.           </tr>
  34.       </table>
  35.       </div></td></tr>
  36.     </form>
  37.   </body>
  38.  
  39.   </html>

n°325804
El_gringo
Posté le 07-03-2003 à 11:18:12  profilanswer
 

Essaye avec  

Code :
  1. function affichage()
  2.     {
  3.       if (document.getElementById("essai" ).checked=='true') invisible()
  4.         else visible();
  5.       }

n°325806
fbtheretur​n
Posté le 07-03-2003 à 11:19:53  profilanswer
 

c'est bon, dans le javascript, il ne faut pas mettre le ".checked='true'"
juste ".checked"
 
désolé, je ne connais pas le javascript

n°325820
fbtheretur​n
Posté le 07-03-2003 à 11:28:42  profilanswer
 

Je suis vraiment embetant:  
 
Toutes les solutions marchaient a part
mais je n'arrive pas à l'integrer dans mon grand formulaire...
 
regarder mon formulaire...
vous pouvez faire copier coller pour l'essayer :
Tous les champs à partir du choix "vous vous inscrivez au nom d'une entreprise" ne sont plus alignés (désolé, je n'y arrive pas)
 
et le champ "nom de l'entreprise" ne disparait pas au click... :-(
 

Code :
  1. <html>
  2. <head>
  3. <title>Sans Titre</title>
  4. </head>
  5. <body bgcolor="#FFFFFF">
  6. <script language="Javascript">
  7.   function visible()
  8.   { 
  9.       document.getElementById("layer" ).style.display="";
  10.   }
  11.   function invisible()
  12.   { 
  13.       document.getElementById("layer" ).style.display="none";
  14.   }
  15.   function changeaffichage()
  16.   {
  17.   if (document.getElementById("bouton" ).checked) invisible()
  18.   else visible();
  19.   }
  20. </script>
  21. <!--Début du formulaire-->
  22. <form action="?" method="post">
  23. <table cellpadding="0" cellspacing="0" border="0">
  24. <!--NOM-->
  25. <tr>
  26. <td>Nom :</td>
  27. <td><input type="text" name="nom" value="<?php echo $nom ?>"></td>
  28. </tr>
  29. <!--PRENOM-->
  30. <tr>
  31. <td>Prénom :</td>
  32. <td><input type="text" name="prenom" value="<?php echo $prenom ?>"></td>
  33. </tr>
  34. <!--ADRESSE-->
  35. <tr>
  36. <td>Adresse :</td>
  37. <td><input type="text" name="adresse" value="<?php echo $adresse ?>"></td>
  38. </tr>
  39. <!--CODE POSTAL-->
  40. <tr>
  41. <td>Code postal :</td>
  42. <td><input type="text" name="code_postal" value="<?php echo $code_postal ?>"></td>
  43. </tr>
  44. <!--VILLE-->
  45. <tr>
  46. <td>Ville :</td>
  47. <td><input type="text" name="ville" value="<?php echo $ville ?>"></td>
  48. </tr>
  49. <!--PAYS-->
  50. <tr>
  51. <td>Pays :</td>
  52. <td>                             
  53. <select name="pays" size="1">
  54. <option value="france" <?php if($pays=="france" ) echo "SELECTED";?> >France </option>
  55. <option value="zone1" <?php if($pays=="zone1" ) echo "SELECTED";?>>europe proche</option>
  56. <option value="zone2" <?php if($pays=="zone2" ) echo "SELECTED";?>>europe lointaine</option>
  57. <option value="zone3" <?php if($pays=="zone3" ) echo "SELECTED";?>>pays hors europe</option>
  58. </select>
  59. </td>
  60. </tr>
  61. <!--ENTREPRISE-->
  62. <tr>
  63. <td>Je m'inscris au nom d'une entreprise :</td>
  64. <td> <input id="bouton" type="checkbox" name="entreprise" onclick="changeaffichage();"
  65. <? if($entreprise=="1" ) echo "CHECKED"; ?>
  66.        value="1" /></td>
  67. </tr>
  68.   <div id="layer"><table>
  69.   <!--NOM ENTREPRISE-->
  70.           <tr>
  71.           <td>Nom entreprise:</td>
  72.           <td><input type="text" name="nom_ent" value="<?php echo $nom_ent ?>"></td>
  73.           </tr>
  74.       </table>
  75.       </div>
  76. <!--MAILING LIST-->
  77. <tr>
  78. <td>Je m'inscris à la newsletter de cette boutique :</td>
  79. <td> <input type="checkbox" name="mailing_list"
  80. <? if($mailing_list=="1" ) echo "CHECKED"; ?>
  81.        value="1" /></td>
  82. </tr>
  83. <!--EMAIL-->
  84. <tr>
  85. <td>Email :</td>
  86. <td><input type="text" name="email" value="<?php echo $email ?>"></td>
  87. </tr>
  88. <!--MOT DE PASSE-->
  89. <tr>
  90. <td>Mot de passe :</td>
  91. <td><input type="password" name="mot_de_passe" value="<?php echo $mot_de_passe?>"="10" maxlength="10" /></td>
  92. </tr>
  93. <tr>
  94. <td>Veuillez reécrire le Mot de passe :</td>
  95. <td><input type="password" name="mot_de_passe1" value="<?php echo $mot_de_passe1?>"="10" maxlength="10" /></td>
  96. </tr>
  97. <!--TELEPHONE PERSONNEL-->
  98. <tr>
  99. <td>Téléphone personnel:</td>
  100. <td><input type="text" name="tel_perso" value="<?php echo $tel_perso ?>"></td>
  101. </tr>
  102. <!--TELEPHONE AUTRE-->
  103. <tr>
  104. <td>Téléphone autre:</td>
  105. <td><input type="text" name="tel_autre" value="<?php echo $tel_autre ?>"></td>
  106. </tr>
  107. <!--TELECOPIE-->
  108. <tr>
  109. <td>Télécopie :</td>
  110. <td><input type="text" name="telecopie" value="<?php echo $telecopie ?>"></td>
  111. </tr>
  112. <tr>
  113. <td><input type="submit" name="envoyer" value="soumettre !">
  114. <input type="Reset" name="effacer" value="effacer">
  115. </td>
  116. </tr>
  117. </table>
  118. </form>
  119. </body>
  120. </html>


Message édité par fbthereturn le 07-03-2003 à 11:40:22
n°325863
fbtheretur​n
Posté le 07-03-2003 à 12:03:27  profilanswer
 

c un probleme avec <div id="layer">
quand je le mets dans la zone texte de l'entreprise, ça marche, ça enleve bien la zone text...
(mais pas le texte "nom de l'entreprise"...
 
c'est peut etre pas div qu'il faut utiliser..?

n°325872
walli
Posté le 07-03-2003 à 12:14:08  profilanswer
 

fbthereturn a écrit :

c un probleme avec <div id="layer">
quand je le mets dans la zone texte de l'entreprise, ça marche, ça enleve bien la zone text...
(mais pas le texte "nom de l'entreprise"...
 
c'est peut etre pas div qu'il faut utiliser..?


 
si faut utiliser le div.
le probleme avec le div, c'est qu'il (je crois) doit englober une table pour que ca fonctionne.
il faudrait peut etre utiliser des tables imbriquees pour une meilleure presentation.
sinon, tu n'as pas besoin d'appeller une fonction qui appelle deux autres fonctions tu peux tout faire dans ta fonction changeaffichage() :  

Code :
  1. function changeaffichage()
  2. {
  3.    if (document.getElementById("bouton" ).checked=='true')
  4.        document.getElementById("layer" ).style.display="";
  5.    else
  6.       document.getElementById("layer" ).style.display="none";
  7. }


 

n°325873
fbtheretur​n
Posté le 07-03-2003 à 12:14:24  profilanswer
 

ok c resolu, il fallait mettre un </table> juste avant la balise div...
 
trop merci en tout cas pour le code :-)
 
et Par défaut pour que le champs "nom entreprise " ne soit pas affiché, il faut faire quoi?

n°325876
walli
Posté le 07-03-2003 à 12:22:46  profilanswer
 

fbthereturn a écrit :

ok c resolu, il fallait mettre un </table> juste avant la balise div...
 
trop merci en tout cas pour le code :-)
 
et Par défaut pour que le champs "nom entreprise " ne soit pas affiché, il faut faire quoi?


 
tu rajoutes ca dans ta balise :
style='display:"none"'

n°325882
fbtheretur​n
Posté le 07-03-2003 à 12:26:28  profilanswer
 

trop trop trop merci walli, ça marche!!!!
 
grace à vous je peux aller manger tranquille :-)
 
merci à tous :-)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [?] Formulaire alternatif ! Qui apparauit suivant une option choisie !

 

Sujets relatifs
Apostrophe (formulaire- php)Questions "Formulaire" et pop-up
Id suivant, id précédent ..mes valeurs renvoyer par 1 formulaire sont vide !!!!!
[access] champs texte dans un sous formulaire ?!?formulaire :--> upload d'un fichier image
[html] validation de formulaire lorsqu'on presse entrer(VBA) Formulaire travaillant avec une table et recherche
[ACCESS] Protéger l'acces à un formulaire (par mot de passe...) ?Réaction inatendue d'un formulaire
Plus de sujets relatifs à : [?] Formulaire alternatif ! Qui apparauit suivant une option choisie !


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR