Liste déroulante qui fait apparaître champ texte

Liste déroulante qui fait apparaître champ texte - HTML/CSS - Programmation

Marsh Posté le 06-07-2006 à 11:24:13    

Bonjour à tous,
 
J'ai fait une liste déroulante composée de différents choix. J'aimerais que lorsque l'utilisateur choisit "Texte", un champ texte apparaisse à côté de la liste déroulante pour qu'il puisse saisir.
 
Si quelqu'un à une idée...
Merci


Message édité par rocs2 le 06-07-2006 à 11:29:32
Reply

Marsh Posté le 06-07-2006 à 11:24:13   

Reply

Marsh Posté le 06-07-2006 à 11:26:03    

A mon avis tu devrais plutot voir du coté du javascript

Reply

Marsh Posté le 06-07-2006 à 11:27:54    

ok, merci

Reply

Marsh Posté le 06-07-2006 à 11:31:00    

oui mais tu peux tout a fait le faire en php.
Tu récupères le $_POST['tonSelect'] et tu affiches ou pas le champs texte en fonction de la valeur. [:spamafote]
Un truc dans le genre:

Code :
  1. <select name="tonSelect">
  2. <option value="p">P</option>
  3. <option value="Texte">texte</option>
  4. </select>
  5. <?php
  6. if( isset($_POST['tonSelect']) && $_POST['tonSelect']=='Texte'){
  7. ?>
  8.   <input type="text" ... />
  9. <?php
  10. }
  11. ?>


Attention ça veut aussi dire que le formulaire est soumis à la page courante.
L'avantage est qui si le js est désactivé ça marche quand même.


Message édité par anapajari le 06-07-2006 à 11:32:14
Reply

Marsh Posté le 06-07-2006 à 11:34:46    

ouais merci, mais el problème de cette méthode est qu'il faut valider le formulaire, j'aurais bien aimé que ce champ texte s'affiche directement selon le choix sélectionnée dans la liste déroulante.
Encore merci

Reply

Marsh Posté le 06-07-2006 à 11:47:33    

via le dom en js:
la fonction

Code :
  1. function piut( s){
  2.   if(s.value == 'Texte'){
  3.     var inpNode = document.createElement('input');
  4.     inpNode.setAttribute('type', 'texte');
  5.     inpNode.setAttribute('id', 'truc');
  6.     s.parentNode.appendChild(inpNode);
  7.   } else {
  8.     if ( document.getElementById('truc') ){
  9.       s.parentNode.removeChild(document.getElementById('truc'));
  10.     }
  11.   }
  12. }


Code :
  1. <select ... onchange="piut(this)">
  2. ...
  3. </select>


pas testé mais ça doit être un truc dans le genre...
Et si tu as besoin de mettre un name à ton input, je te conseille de lire cette page: http://www.easy-reader.net/archive [...] entations/
 
et encore une fois, si le mec a pas le js activé, y'a rien qui marche [:spamafote]

Reply

Marsh Posté le 06-07-2006 à 12:03:16    

je viens d'essayer ton script anapajari et ça marche nickel !!
merci bcp
chapeau l'artiste....

Reply

Sujets relatifs:

Leave a Replay

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