IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Action avec bouton radio.


Sujet :

JavaScript

  1. #1
    Membre régulier Avatar de Shandler
    Profil pro
    Inscrit en
    Février 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 514
    Points : 107
    Points
    107
    Par défaut Action avec bouton radio.
    Bonjour a tous.

    J'ai un problème et que je pense qu'il ne peut être résolu qu'en javascript mais si y a un autre moyen merci de me le dire.

    Donc voila :

    J'ai créé un formulaire avec différent champ de type textarea et text.
    Dans ce formulaire y a une section ou il y a 3 bouton radio qui ont chacun une valeur (6 mois, 8 mois, 24 mois) quand on sélectionne une des 3 valeurs un tableau doit apparaitre juste en dessous avec comme nombre de colonne le nombre de mois.
    Donc ce que je voudrais savoir comment faire apparaitre ce tableau sachant que la personne qui rempli le formulaire doit garder les informations déjà saisi donc éviter de rafraichir la page pour perdre les informations déjà saisi.

    Si quelqu'un a une idée, une aide je l'en remercie.

  2. #2
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut


    pourquoi ne codes tu pas directement tes 3 tableaux dans 3 divs différents dans ta page en visibility hidden et lorsque l'utilisateur clique sur tes boutons radio, les div se mettent en visibility visible et donc tes tableaux apparaissent.

  3. #3
    Membre régulier Avatar de Shandler
    Profil pro
    Inscrit en
    Février 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 514
    Points : 107
    Points
    107
    Par défaut
    Ca peut etre une technique mais bon le seul probleme c'est que ca va alourdir ma page considérablement donc si une autre technique existe ca pourrai etre mieux je pense merci.

    Peut etre en combinant avec une boucle en php mais bon je voie pas comment récupérer la valeur pour la boucle.

    Merci

  4. #4
    Membre régulier Avatar de Shandler
    Profil pro
    Inscrit en
    Février 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 514
    Points : 107
    Points
    107
    Par défaut
    Je bute toujours personne n'aurait une idée miracle ?

    Merci.

  5. #5
    Membre expérimenté
    Avatar de ryan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 956
    Points : 1 316
    Points
    1 316
    Billets dans le blog
    1
    Par défaut
    Yop!


    Pourquoi ne pas prévoir uniquement le tableau (<table>) vide, ce qui n'alourdira pas vraiment la page, et lui ajouter le nombre de colonnes voulu en fonction du bouton radio qui aura été coché?
    Un ascenseur est une machine qui passe quand même la moitié de son temps à descendre.

  6. #6
    Membre régulier Avatar de Shandler
    Profil pro
    Inscrit en
    Février 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 514
    Points : 107
    Points
    107
    Par défaut
    oui jy es pensé en utilisant une boucle for mais voila je ne sais pas comment envoyer la valeur dans ma boucle et surtout comment garder les valeurs deja saisi dans mon formulaire.

    MErci

  7. #7
    Membre expérimenté
    Avatar de ryan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 956
    Points : 1 316
    Points
    1 316
    Billets dans le blog
    1
    Par défaut
    Yop!

    Quelque chose comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    <html>
    <head>
    <script type="text/javaScript">
    function addCol(combien)
    {
      var tobj;
      tobj = document.getElementById("matable");
      tobj.deleteRow(-1);
      var tr = tobj.insertRow(-1);
      for (i=0; i<combien; i++)
      {
        var td = tr.insertCell(i);
        td.innerHTML = "colonne " + (i+1);
      }  
    }
    </script>
    </head>
    <body>
    <form>
    Un champ:<input type=text id="c1" value="">
    <br/>
    Un autre champ:<input type=text id="c2" value="">
    <br/>
    <input type=radio name="mois" value=6 onMouseUp="addCol('6')">6
    <br/>
    <input type=radio name="mois" value=8 onMouseUp="addCol('8')">8
    <br/>
    <input type=radio name="mois" value=24 onMouseUp="addCol('24')">24
    </select>
    </form>
    <table id="matable" border=1>
    </table>
    </body>
    </html>
    Tu peux compléter les deux champs textes et ensuite sélectionner un nombre de mois sans que cela n'influe sur le contenu des champs textes.
    Un ascenseur est une machine qui passe quand même la moitié de son temps à descendre.

  8. #8
    Membre régulier Avatar de Shandler
    Profil pro
    Inscrit en
    Février 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 514
    Points : 107
    Points
    107
    Par défaut
    Salut merci de ton aide.

    J'ai essayé de pigé ton code mais comme moi et le javascript ca fais 2 j'ai pas tous compris car en faite j'ai essayé de modifier l'affichage du tableau sachant que je voudrais qu'il ressemble plus a ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <table border=1>
    <tr>
    <td>moi1</td>
    <td>
    <textarea name="moi1" ></textarea>
    </td>
    </tr>
    <tr>
    <td>moi2</td>
    <td>
    <textarea name="moi2" ></textarea>
    </td>
    </tr>
    <tr>
    <td>moi3</td>
    <td>
    <textarea name="moi3" ></textarea>
    </td>
    </tr>
    </table>
    Comme tu peux le voir en plus y a des textarea donc le contenu doit enregistrer en BDD après enfin voilà si tu pouvais une dernière fois éclairer ma lanterne j'en t'en remercie.

    Merci a toi.

  9. #9
    Membre expérimenté
    Avatar de ryan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 956
    Points : 1 316
    Points
    1 316
    Billets dans le blog
    1
    Par défaut
    Yop!

    Ceci devrait convenir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    function addCol(combien)
    {
      var tobj = document.getElementById("matable");
     
      numrows = tobj.rows.length;
      for (i=0; i<numrows; i++)
      {
        tobj.deleteRow(-1); 
      }
     
      for (i=1; i<=combien; i++)
      {
        var tr = tobj.insertRow(-1);  
        var td0 = tr.insertCell(-1);
        td0.innerHTML = "moi" + i;
        var td1 = tr.insertCell(-1);
        td1.innerHTML = "<textarea name='moi" + i + "' ></textarea>"; 
      }  
    }
    Un ascenseur est une machine qui passe quand même la moitié de son temps à descendre.

  10. #10
    Membre régulier Avatar de Shandler
    Profil pro
    Inscrit en
    Février 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 514
    Points : 107
    Points
    107
    Par défaut
    Merci ca marche nickel mais j'aurais une question subsidiaire si tu es toujours dispo.

    Voila sur mon formulaire je vais des verification en php pour savoir si tous les champs sont bien rempli ou si c'est bien une adresse mail donc ma question est comment faire pour que quand une erreur arrive je garde toujours l'affichage du tableau qui est rempli sachant que je fais deja un test en php pour replacer le bouton sélectionner en checked.

    J'aurais aimé aussi pouvoir insérer la valeur des mois sélectionné dans un champ caché pour le traitement avec la BDD.

    Merci beaucoup de ton aide.

  11. #11
    Membre expérimenté
    Avatar de ryan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 956
    Points : 1 316
    Points
    1 316
    Billets dans le blog
    1
    Par défaut
    Yop!

    Je crois que le meilleur moyen de revenir en arrière dans ce cas est un history.go(-1), ce qui devrait préserver les éléments dynamiques et leur contenu.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href="javascript:history.go(-1)">Back</a>
    Un ascenseur est une machine qui passe quand même la moitié de son temps à descendre.

  12. #12
    Membre régulier Avatar de Shandler
    Profil pro
    Inscrit en
    Février 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 514
    Points : 107
    Points
    107
    Par défaut
    Salut,

    J'ai essayé de mettre en place autrement ton history.go(-1) car le probléme faut que se soit transparent pour l'utilisateur donc quand il valide avec le bouton submit, les erreurs apparaisse et donc le tableau doit rester. Car de lui même il cliquera pas sur le lien back.

    Merci a toi.

  13. #13
    Membre expérimenté
    Avatar de ryan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 956
    Points : 1 316
    Points
    1 316
    Billets dans le blog
    1
    Par défaut
    Yop!

    J'avais compris que tu faisais une validation en PHP, donc après que le formulaire ait été soumis.

    Cela dit, il est possible de faire la validation en Javascript avant de soumettre le formulaire, ce sera plus simple que de reconstruire celui-ci sur la page d'action au cas il y a des champs vides.
    Un ascenseur est une machine qui passe quand même la moitié de son temps à descendre.

  14. #14
    Membre régulier Avatar de Shandler
    Profil pro
    Inscrit en
    Février 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 514
    Points : 107
    Points
    107
    Par défaut
    En faite tous ce qui est validation des champs vide est deja mis en place y a juste le module du tableau qui reste a mettre en place donc c'est pour ca si il y avais juste un moyen pour réaficher le tableau et de garder les valeurs du tableau si il y en a.

    Merci a toi.

  15. #15
    Membre expérimenté
    Avatar de ryan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 956
    Points : 1 316
    Points
    1 316
    Billets dans le blog
    1
    Par défaut
    Yop!

    'Scuse moi, mais je n'ai toujours pas capté si tu validais les champs en Javascript avant de soumettre le formulaire, ou si tu validais les champs en PHP après avoir soumis le formulaire.

    C'est dimanche, mon neurone se la joue cool....
    Un ascenseur est une machine qui passe quand même la moitié de son temps à descendre.

  16. #16
    Membre régulier Avatar de Shandler
    Profil pro
    Inscrit en
    Février 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 514
    Points : 107
    Points
    107
    Par défaut
    Tous ce qui est validation j'ai deja mis ca en place en php en verifiant si la variable $_POST est pas vide par exemple et donc j'aimerais continué sur ma lancé pour les textarea du tableau des mois en les verifiant aussi grace au php mais comme je disais plus haut mon probléme est que quand une erreur est affiché le tableau n'est plus la.

    Merci a toi.

  17. #17
    Membre expérimenté
    Avatar de ryan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 956
    Points : 1 316
    Points
    1 316
    Billets dans le blog
    1
    Par défaut
    Yop!

    Malheureusement, je ne code plus en PHP depuis des années (je suis tombé du côté obscur de la force).

    Mais bon, le principe est le même que ce soit en ASP ou en PHP:
    - tu connais le nombre de mois puisque les boutons radio envoient l'information.
    - tu sais que le nom de tous les textarea commence par "moi"
    - tu construis une boucle, mettons que le controleur de la boucle soit i et que sa valeur maximale soit le nombre de mois.
    - tu reconstruis le nom de chaque textarea en concaténant "moi" et i, quelque chose comme $_POST['moi' + i] (attention, mon PHP est bien rouillé, je ne me souviens plus si ceci est autorisé en PHP).
    - cela devrait te permettre de récupérer tous les textarea et de reconstruire le tableau.
    Un ascenseur est une machine qui passe quand même la moitié de son temps à descendre.

  18. #18
    Membre régulier Avatar de Shandler
    Profil pro
    Inscrit en
    Février 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 514
    Points : 107
    Points
    107
    Par défaut
    Oui je suis d'accord mais mon problème est que j'arrive pas récupérer la valeur du radio pour le mettre dans ma boucle car je pense pas que mettre du php dans une fonction javascript marche bien donc en faite il me faudrait je sais pas quoi pour que je puisse mettre la variable javascript avec la valeur du radio dans ma boucle php. Et aussi peut on mettre un css particulier sur les td avec ta methode de creation de tableau en js ?

    Voila merci encore de ton aide.

  19. #19
    Membre expérimenté
    Avatar de ryan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 956
    Points : 1 316
    Points
    1 316
    Billets dans le blog
    1
    Par défaut
    Yop!

    Mettons que tes radios se nomment "nb_mois" (tous les radios doivent avoir le même nom).
    Dans la page d'action du formulaire (la page vers laquelle tu envoies le formulaire) tu devrais pouvoir récupérer le nombre de mois avec
    Un ascenseur est une machine qui passe quand même la moitié de son temps à descendre.

  20. #20
    Membre régulier Avatar de Shandler
    Profil pro
    Inscrit en
    Février 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 514
    Points : 107
    Points
    107
    Par défaut
    Salut,

    Moi aussi hier soir mes neurones marché pas top car la solution été trés con donc maitenant ca marche meme quand y a des erreurs c'est top.

    Sinon je t'avais demandé si on pouvait mettre du css dans ton code javascript.

    Merci beaucoup de ton aide.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Prix modulable avec boutons radio
    Par Zardhoz dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 24/07/2007, 09h06
  2. faire apparaître un DIV avec bouton radio
    Par laurent2 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 19/07/2007, 15h00
  3. Problème avec bouton radio sous IE.
    Par waldo2188 dans le forum Général Conception Web
    Réponses: 3
    Dernier message: 21/06/2006, 12h11
  4. peut on rafraichir une page avec bouton radio?
    Par zorba49 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 06/06/2006, 12h33
  5. Réponses: 7
    Dernier message: 26/05/2006, 14h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo