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 :

show/hide questions et réponses


Sujet :

JavaScript

  1. #1
    Membre à l'essai Avatar de Barcus
    Homme Profil pro
    en retraite
    Inscrit en
    Avril 2016
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : en retraite
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2016
    Messages : 27
    Points : 14
    Points
    14
    Par défaut show/hide questions et réponses
    Bonjour,

    le code suivant vous fera comprendre ce que je cherche à faire - Ce qui ne va pas, c'est qu'au lancement du script les réponses s'affichent au lieu d'être cachées - Par ailleurs, je voudrais (et je ne sais pas comment faire) ajouter à cette question d'autres questions 2, 3, 4, 5 ....

    Merci

    Code html : 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
    36
    37
    38
    39
    40
    41
    <!DOCTYPE html>
    <html lang="fr">
    <head>
    	<meta charset="utf-8" />
    	<title>Toggle_show_hide</title>
    	<style>
    #myDIV {
        width: 100%;
        padding: 50px 0;
        text-align: center;
        background-color: lightblue;
        margin-top:20px;
    }
    </style>
    </head>
    <body>
    <a><h2>Exercice 10</h2>
    <p></p>
    <a>Traduisez</a> 
    <p></p>
    <p>I. Le maire a laissé les promoteurs acheter le parc du château.</p>
     
    <button onclick="myFunction()">Réponse</button>
     
    <div id="myDIV">
    The mayor let the property developpers buy the parc of the manor house.
    </div>
     
    <script>
    function myFunction() {
        var x = document.getElementById('myDIV');
        if (x.style.display === 'none') {
            x.style.display = 'block';
        } else {
            x.style.display = 'none';
        }
    }
    </script>
     
    </body>
    </html>

  2. #2
    Membre éprouvé
    Avatar de Cafeinoman
    Homme Profil pro
    Couteau suisse d'une PME
    Inscrit en
    Octobre 2012
    Messages
    628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Couteau suisse d'une PME

    Informations forums :
    Inscription : Octobre 2012
    Messages : 628
    Points : 1 256
    Points
    1 256
    Par défaut
    Tu as simplement oublié de préciser le display:none dans ton css de départ, ce qui fait que par défaut ta div est sur display:block au chargement de la page.
    Pour ce qui est de reproduire l'idée sur plusieurs questions, la solution dépend surtout de ce que tu as côté serveur... si c'est du html "brut", la seule solution il me semble serai de passer l'id en paramètre à ta fonction. Sinon, le mieux serait de générer la page depuis une liste qui vient de serveur...

    Ps: par contre tu es dans la rubrique java, et rien dans ton problème n'y fait référence... ton serveur est-il en java où t'es tu trompé ?
    «Dieu ne joue pas aux dés.» - Albert Einstein. Et pan! 30 ans de retard dans la théorie quantique!
    «Tout n'est pas politique, mais la politique s'intéresse à tout.» - Nicolas Machiavel. Et surtout à ceux qui ne s'y intéressent pas.

  3. #3
    Membre à l'essai Avatar de Barcus
    Homme Profil pro
    en retraite
    Inscrit en
    Avril 2016
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : en retraite
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2016
    Messages : 27
    Points : 14
    Points
    14
    Par défaut Aie aie aie
    Merci Cafeinoman d'avoir pris la peine de me répondre...

    C'est du Javascript ? J'ai déjà eu bien du mal à trouver le moyen de seulement poser ma question ne trouvant pas le bouton "nouvelle discussion" ! Java n'est pas Javascript bien-sûr ! Mais alors je dois basculer la discussion où ?

    Le - display : none; - l'explication est claire mais je ne trouve pas l'endroit où le mettre : tout ce que j'ai essayé ne change rien.

    Enfin, j'ai un hébergement mutualisé chez OVH, c'est tout ce que je sais !

    Mon problème est de mettre dans une page html5 la possibilité d'avoir la réponse immédiate à une question avec Info bulles, bootstraps, popovers ou tooltips, sachant que cette réponse (avec les explications) est parfois un peu longue. J'ai essayé les commentaires des pdf mais ils n'atterrissent pas toujours sur la page .... j'y renonce ! La solution javascript me paraît très bien à condition de fonctionner correctement.

    Merci encore

  4. #4
    Membre éprouvé
    Avatar de Cafeinoman
    Homme Profil pro
    Couteau suisse d'une PME
    Inscrit en
    Octobre 2012
    Messages
    628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Couteau suisse d'une PME

    Informations forums :
    Inscription : Octobre 2012
    Messages : 628
    Points : 1 256
    Points
    1 256
    Par défaut
    Ok, donc du html static. Vu ce que tu veux faire, je te conseil de regarder du côté de Jquery / jqueryUI, qui te permettra de faire apparaître "proprement" une boîte de dialogue avec la réponse, sans avoir a réinventer la roue...
    «Dieu ne joue pas aux dés.» - Albert Einstein. Et pan! 30 ans de retard dans la théorie quantique!
    «Tout n'est pas politique, mais la politique s'intéresse à tout.» - Nicolas Machiavel. Et surtout à ceux qui ne s'y intéressent pas.

  5. #5
    Membre expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 873
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 873
    Points : 3 717
    Points
    3 717
    Par défaut
    Citation Envoyé par Barcus Voir le message

    Le - display : none; - l'explication est claire mais je ne trouve pas l'endroit où le mettre : tout ce que j'ai essayé ne change rien.
    Par exemple ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <div id="myDIV" style="display: none" >
    The mayor let the property developpers buy the parc of the manor house.
    </div>
    Tu peux tester ici : http://jsbin.com/sojayiyeka/edit?html,output

  6. #6
    Membre expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 873
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 873
    Points : 3 717
    Points
    3 717
    Par défaut
    Ah oui tu peux aussi regarder ce fil : Questions/réponses, boutons et boucle, j'y ai posté une réponse que tu peux tester ici : http://jsbin.com/wejogoxuvo/edit?js,output.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    voici un petit systèeme de Questions Répoanses en JavaScript : (à voir ici : http://codepen.io/jreaux62/pen/GrvRBN)

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <body>
      <h2>Exercice 10</h2>
     
      <h4>Traduisez</h4>
      <div id="QRwrap"></div>
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    .Question {
      font-weight: normal;
      padding: 10px 20px;
      text-align: center;
      background-color: lightgrey;
    }
    .Reponse {
      font-weight: normal;
      padding: 10px 20px;
      text-align: center;
      color: darkblue;
      background-color: lightblue;
      display:none; /* on masque */
    }
    .RepBtn { }
    Code JavaScript : 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
    function initiate_QR() {
      var Qs = new Array(); // Questions
      var Rs = new Array(); // Réponses
      Qs[0] = 'Le maire a laissé les promoteurs acheter le parc du château.';
      Rs[0] = 'The mayor let the property developpers buy the parc of the manor house.';
      Qs[1] = 'Mon tailleur est riche.';
      Rs[1] = 'My tailor is rich.';
      Qs[2] = 'Promenons-nous dans les bois.';
      Rs[2] = 'Let\'s wander in the forest.';
      // ........ On peut ajouter autant de Q/R que nécessaire.....
      var NbreQ = Qs.length // nombre de Questions/Réponses
        //	alert(NbreQ);
      var QRwrap = document.getElementById('QRwrap');
      for (i = 0; i < NbreQ; i++) {
        var contentHTML = '<p class="Question" id="Q-' + i + '">' + (i + 1) + '- ' + Qs[i] + '</p>';
        contentHTML += '<p class="Reponse" id="R-' + i + '">' + (i + 1) + '- ' + Rs[i] + '</p>';
        contentHTML += '<button class="RepBtn" type="button" onclick="show_Rep(' + i + ')">Réponse</button>';
     
        QRwrap.innerHTML += contentHTML;
        //		alert( (i+1) + '- ' + Qs[i]);
      }
    }
     
    function show_Rep(i) {
      var Rep = document.getElementById('R-' + i);
      Rep.style.display = (Rep.style.display == 'block') ? 'none' : 'block';
    }
     
    window.onload = initiate_QR;

    N.B. Les pro du JS sauront certainement l'améliorer et l'optimiser
    Dernière modification par Invité ; 29/01/2017 à 10h42.

  8. #8
    Membre à l'essai Avatar de Barcus
    Homme Profil pro
    en retraite
    Inscrit en
    Avril 2016
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : en retraite
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2016
    Messages : 27
    Points : 14
    Points
    14
    Par défaut Une réponse qui vaut ce qu'elle vaut
    Merci à chacun pour vos réponses que je vais décortiquer ! Il y a sûrement une meilleure réponse que ce que j'ai trouvé et j'ai peut-être "ré-inventé la roue" comme dit cafeinoman mais ça marche pratiquement comme je veux !

    Code html : 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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    <!DOCTYPE html>
    <html lang="fr">
    <head>
    	<meta charset="utf-8" />
    	<title>reponse a la question</title>
    	<script type="text/javascript">
    <!--
    function toggle(id) {
    var e = document.getElementById(id);
    if(e.style.display == 'none')
    e.style.display = 'block';
    else
    e.style.display = 'none';
    }
    //-->
    </script>
    </head>
    <body>
    <a><h2>Exercice 10</h2>
    <p></p>
    <a>Traduisez</a> 
    <p></p>
     
    <!-- Première question -->
     
    <div id="question1">
    I. Le maire a laissé les promoteurs acheter le parc du château.  <a href="#"
    onclick="toggle('answer1');">répondre/effacer</a>
    </div>
    <div style="display:none" id="answer1">
    1. The mayor let the property developpers buy the park of the manor house.
    </div>
     
    <!-- Deuxième question -->
     
    <div id="question2">
    2. Le maire a permis aux promoteurs de construire des maisons dans le parc du
    château  <a href="#"
    onclick="toggle('answer2');">répondre/effacer</a> 
    </div>
    <div style="display:none" id="answer2">
    2. The mayor allowed the property developpers to build houses in the park of the
    manor house.
    <i>Ne confondez pas les constructions de let et allow, malgré la parenté du sens.</i>
    </div>
     
    <!-- Troisième question -->
     
    <div id="question3">
    3. Le directeur du journal a demandé au maire d'expliquer sa politique d'urbanisme.  <a href="#"
    onclick="toggle('answer3');">répondre/effacer</a> 
    </div>
    <div style="display:none" id="answer3">
    3. The director of the newspaper asked the mayor to explain his town planning policy.
    <i>Surtout pas de to.</i>
    </div>
     
    <!-- Quatrième question -->
     
    <div id="question4">
    4. Le maire a dit qu'il voulait que la ville soit plus moderne.  <a href="#"
    onclick="toggle('answer4');">répondre/effacer</a> 
    </div>
    <div style="display:none" id="answer4">
    4. The mayor said that he wanted the town to be more modern.
    <i>surtout pas tell, puisque l'interlocuteur n'est pas mentionné; après want surtout pas de
    subordonnée en that.</i>
    </div>
     
    <!-- Cinquième question -->
     
    <div id="question5">
    5. Le journaliste a demandé plus de détails.  <a href="#"
    onclick="toggle('answer5');">répondre/effacer</a> 
    </div>
    <div style="display:none" id="answer5">
    5. The journalist asked for more details.
    <i>Les détails sont ce que le journaliste désire obtenir, pas le contenu de sa question.</i>
    </div>
     
    <!-- Sixième question -->
     
    <div id="question6">
    6. Le maire a dit au journaliste que de vieux bâtiments sans utilité seraient remplacés
    par des logements confortables.  <a href="#"
    onclick="toggle('answer6');">répondre/effacer</a> 
    </div>
    <div style="display:none" id="answer6">
    6. The mayor said to/told the journalist that useless old buildings would be replaced
    by comfortable houses.
    <i>Say ou tell, mais ne pas se tromper de construction.</i>
    </div>
     
    <!-- Septième question -->
     
    <div id="question7">
    7. Le journaliste a demandé au maire de préciser sa position et le maire lui a expliqué
    qu'un centre commercial remplacerait les halles médiévales.  <a href="#"
    onclick="toggle('answer7');">répondre/effacer</a> 
    </div>
    <div style="display:none" id="answer7">
    7. The journalist asked the mayor to be more specific and the mayor told him/explained
    that a shopping centre would replace the medieval covered market.
    <i>tell ne peut pas se passer de son complément him; mais après explain il n'est pas
    nécessaire de mentionner la personne à qui on s'adresse, Si on tient à le faire, revenir
    à tell.</i>
    </div>
     
    <!-- Huitième question -->
     
    <div id="question8">
    8. Le journaliste aurait voulu que le maire avoue que son parti avait reçu de l'argent  <a href="#"
    onclick="toggle('answer8');">répondre/effacer</a> 
    </div>
    <div style="display:none" id="answer8">
    8. The journalist would have liked the mayor to admit that his party had received
    money.
    <i>Surtout pas de subordonnée en that pas de gérondif non plus quand i l s'agit d'un
    événement en projet.</i>
    </div>
     
    <!-- Neuvième question -->
     
    <div id="question9">
    9. Le maire a refusé de répondre au journaliste.  <a href="#"
    onclick="toggle('answer9');">répondre/effacer</a> 
    </div>
    <div style="display:none" id="answer9">
    9. The mayor refused to answer the journalist.
    <i>Surtout pas de to après answer.</i>
    </div>
     
    <!-- Dixième question -->
     
    <div id="question10">
    10. Le journaliste a rappelé au maire que les électeurs appréciaient d'avoir un parc
    presque au centre de la ville. <a href="#"
    onclick="toggle('answer10');">répondre/effacer</a> 
    </div>
    <div style="display:none" id="answer10">
    10. The journalist reminded the mayor that the voters enjoyed/liked having a park
    almost in the centre of the town.
    <i>Construction directe de remind quand il y a une subordonnée en that après;
    gérondif après enjoy/like, car cette fois il s'agit d'un état qui pré-existe.</i>
    </div>
     
    <!-- Onzième question -->
     
    <div id="question11">
    11. Le maire a dit être un fervent défenseur de la nature. <a href="#"
    onclick="toggle('answer11');">répondre/effacer</a> 
    </div>
    <div style="display:none" id="answer11">
    11. The mayor said that he was a staunch nature-lover/ conservationist.
    <i>Surtout pas l'infinitif; tell impossible puisque l'interlocuteur n'est pas mentionné.</i>
    </div>
     
    <!-- Douzième question -->
     
    <div id="question12">
    12. Le journaliste a renoncé à interroger le maire sur les problèmes d'urbanisme et
    lui a posé quelques questions sur l'organisation de l'exposition florale. <a href="#"
    onclick="toggle('answer12');">répondre/effacer</a> 
    </div>
    <div style="display:none" id="answer12">
    12. The journalist gave up questioning the mayor on town planning issues and asked
    him a few questions on the organization of the flower show.
    <i>give up, comme quit et stop est suivi du gérondif</i>
    </div>
    </body>
    </html>

  9. #9
    Membre à l'essai Avatar de Barcus
    Homme Profil pro
    en retraite
    Inscrit en
    Avril 2016
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : en retraite
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2016
    Messages : 27
    Points : 14
    Points
    14
    Par défaut Merci Merci Merci mais // ........ On peut ajouter autant de Q/R que nécessaire.....
    Merci JReaux62 pour ce code !
    En fait je bloque à la cinquième question et je me demande bien pourquoi !
    Après Qs[3] et Rs[3], je ne peux pas passer à Qs[4] - RS[4]

    Merci encore

  10. #10
    Membre à l'essai Avatar de Barcus
    Homme Profil pro
    en retraite
    Inscrit en
    Avril 2016
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : en retraite
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2016
    Messages : 27
    Points : 14
    Points
    14
    Par défaut Pardon, c'est faux
    Pardon JReaux62,

    Je peux aller plus loin !
    Donc la discussion est close.

    Merci encore.

  11. #11
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 957
    Points : 44 119
    Points
    44 119
    Par défaut
    Bonjour,
    attention toutefois dans le code de jreaux62 il ne faut pas écrire window.onload = initiate_QR(); mais window.onload = initiate_QR; sans les parenthèses.

  12. #12
    Invité
    Invité(e)
    Par défaut
    Oups.

    Corrigé.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réflexion sur les "Show Hide" du Framework
    Par Jeweller dans le forum XMLRAD
    Réponses: 9
    Dernier message: 11/01/2007, 14h11
  2. toggle show/hide tableau
    Par Invité dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 21/12/2006, 22h08
  3. [JAVASCRIPT] Show/hide formulaire
    Par jeb001 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 30/11/2005, 10h20
  4. [C#] Form : Quelles méthodes ? Close, Dispose, Show, Hide
    Par TheSeb dans le forum Windows Forms
    Réponses: 9
    Dernier message: 30/05/2005, 16h42

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