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 :

Affichage de texte onclick


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Informaticien versatile
    Inscrit en
    Mars 2015
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien versatile

    Informations forums :
    Inscription : Mars 2015
    Messages : 31
    Points : 28
    Points
    28
    Par défaut Affichage de texte onclick
    Bonjour à tous,

    Je débute en php et après pas mal de lecture et de pratique, je m'introduit tout doucement à intégrer un peu de Javascript dans mon code.

    Voilà le topo, j'ai une série de bouton (disposant tous d'un ID unique) et au clic de ce bouton je souhaiterais faire apparaitre/disparaitre du texte (qui par défaut est caché)

    Pour résumé j'ai donc ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <button onclick="show()"> My button
    </button>
     
    <div id="list"> My list
    </div>
    CSS:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #list{
    	display : none;
    }
    Javascript :
    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
     
    button = document.getElementsByTagName('button');
    para = document.getElementsByID('list');
     
    function show(x) {
        para[x].style.display = 'block';
        button[x].onclick = function() {
            hide(x);
        }
    }
     
    function hide(x) {
        para[x].style.display = 'none';
        button[x].onclick = function() {
            show(x);
        }
    }
     
    button[0].onclick = function() {
        show(0);
    }
    Je sais que mon code Javascript est faux, mais au moins j'ai essayé de pondre quelque chose qui me semblait +- cohérent. Est-ce que quelqu'un pourrait m'aider à y voir plus clair dans ceci ?

  2. #2
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    getElementsByID n'existe pas. Un ID doit être unique dans le document. Le nom correct est donc getElementById, et il renvoie un seul élément et non une liste d'éléments.
    One Web to rule them all

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Informaticien versatile
    Inscrit en
    Mars 2015
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien versatile

    Informations forums :
    Inscription : Mars 2015
    Messages : 31
    Points : 28
    Points
    28
    Par défaut
    Pardon j'ai oublié de préciser ceci. 'list' est une variable. Pour simplifier mon code afin de le présenter je n'ai pas voulu le compliquer et j'ai oublié de mentionner cela.

    Mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <button onclick="show()"> My button
    </button>
     
    <div id="list"> My list
    </div>
    est placé dans un foreach() comme ceci (et donc list = $id_case) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    foreach($currentCases as $data)
                {
                    $id_case = $data->getCaseID();
                    //Set title
                          ?>           
                        <fieldset>     
                        <legend>
                        <button id='<?php echo $id_case;?> ' onclick="show()"> 
                        ...
                        <?php
                }
    $id_case est donc unique et différent pour chaque bouton.

  4. #4
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    tu fais du php je suppose que tu connais donc le B.A.BA. de la programmation

    Il n'y a pas un truc qui te choque là ?
    A+JYT

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Informaticien versatile
    Inscrit en
    Mars 2015
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien versatile

    Informations forums :
    Inscription : Mars 2015
    Messages : 31
    Points : 28
    Points
    28
    Par défaut
    Citation Envoyé par sekaijin Voir le message
    Il n'y a pas un truc qui te choque là ?
    A+JYT
    Effectivement ...

    J'ai essayé de corriger le coup..

    My button
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    foreach($currentCases as $data)
    			{
    				$id_case = $data->getCaseID();
    	?>			<button onclick=" show(' <?php echo $id_case; ?> '); ">
                                    ...
    My div to hide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id='<?php echo $id_case; ?> '> Test </div>
    Javascript
    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
     
    <script type="text/javascript">
     
    	function show(id) 
    	{
    		var div = document.getElementById(id);
     
    		if (div.style.display !== 'block') 
    		{
    			div.style.display = 'none';
    		}
    		else 
    		{
    			div.style.display = 'block';
    		}
    	}
     
    </script>
    Mais rien ne fonctionne, une idée ? Je ne suis pas sur de mon coup concernant le javascript

  6. #6
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Tu étais bien parti en ne postant pas ton code PHP. PHP et JavaScript travaillent séparément et on veut éviter de mélanger les sujets, c'est pourquoi il est demandé dans les règles de la section de poster uniquement le code généré côté navigateur.

    Allez, il n'y a pas autre chose qui te choque là dedans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (div.style.display !== 'block'){
    	div.style.display = 'none';
    } else {
    	div.style.display = 'block';
    }
    One Web to rule them all

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Informaticien versatile
    Inscrit en
    Mars 2015
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien versatile

    Informations forums :
    Inscription : Mars 2015
    Messages : 31
    Points : 28
    Points
    28
    Par défaut
    Merci à toi, désolé je crois que j'étais vraiment fatigué pour commettre des erreurs pareils ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    	function show(id) 
    	{
    		var div = document.getElementById(id);
     
    		if (div.style.display == 'none') 
    		{
    			div.style.display = 'block';
    		}
    		else 
    		{
    			div.style.display = 'none';
    		}
    	}
    Cela fonction tip top, merci

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 08/06/2009, 11h30
  2. Affichage de texte
    Par Yellowmat dans le forum OpenGL
    Réponses: 2
    Dernier message: 15/12/2004, 12h25
  3. [C#] Affichage de texte vertical...
    Par AntiSAL dans le forum Windows Forms
    Réponses: 6
    Dernier message: 10/06/2004, 14h46
  4. Affichage de texte est mise à jour de l'écran
    Par Galdor_sp dans le forum OpenGL
    Réponses: 3
    Dernier message: 14/03/2004, 22h31
  5. [MX 2004] Affichage du texte dynamique
    Par caramel dans le forum Flash
    Réponses: 8
    Dernier message: 29/01/2004, 16h07

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