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 :

Afficher cacher image JavaScript et PHP


Sujet :

JavaScript

  1. #1
    Membre habitué Avatar de XeGregory
    Homme Profil pro
    Passionné par la programmation
    Inscrit en
    Janvier 2017
    Messages
    260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Passionné par la programmation
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2017
    Messages : 260
    Points : 171
    Points
    171
    Par défaut Afficher cacher image JavaScript et PHP
    Bonjour à tous et à toutes

    j'ai un p'tit problème dans ma fonction js, je suis pas un grand expert du JavaScript, c'est pour cela que je vous sollicite

    Impossible de rendre visible mon image lorsque je clique sur mon lien : <a href="javascript:showOne('.$id.')"> .
    Ma fonction php
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    protected function url($string, $id)
       {  
     
        if (preg_match("/https?:\/\/[^ ]+?(?:\.png|\.gif|\.jpg|\.jpeg)/", $string)) {
            return preg_replace('/(https?:\/\/([^ ]*)\/([^ \/]*)\.(png|gif|jpg|jpeg))/Ui', '<a href="javascript:showOne('.$id.')">Afficher l'image</a><img id="myim'.$id.'" class="rounded mx-auto d-block" src="$1" title="" style="visibility: hidden;" />', $string);
    }

    Ma fonction Js
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function showOne(id) {
    var img1 = document.getElementById("myim" + id);
    img1.style.visibility = "";
      if(img1.style.visibility == "hidden" ) {
        img1.style.visibility = "visible";
      }
      else {
      img1.style.visibility = "hidden";
      }
    }
    Merci beaucoup pour votre aide.
    Vous ne pouvez pas faire confiance à un code que vous n'avez pas totalement rédigé vous-même.

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    j'ai du mal à voir ta démarche.

    En écrivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    img1.style.visibility = "";
    tu « vides » la propriété visibilty du style de ton élément

    Juste après, tu testes si cette propriété vaut hidden :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (img1.style.visibility == "hidden") {
    tu ne rentreras donc jamais dans cette condition et tu iras à la case :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    img1.style.visibility = "hidden";
    Généralement on utilise la propriété display: none|block|... pour faire se rendu, de plus pourquoi utiliser un élément <a> pour faire ce job, quand il existe l'élément <button> qui est là pour cela.

  3. #3
    Membre habitué Avatar de XeGregory
    Homme Profil pro
    Passionné par la programmation
    Inscrit en
    Janvier 2017
    Messages
    260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Passionné par la programmation
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2017
    Messages : 260
    Points : 171
    Points
    171
    Par défaut
    Bonjour NoSmoking merci pour ta réponse

    Après la correction, j'ai comme l’impression que ma fonction js (showOne) ne s’exécute mème pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    protected function url($string, $id)
       {  
     
        if (preg_match("/https?:\/\/[^ ]+?(?:\.png|\.gif|\.jpg|\.jpeg)/", $string)) {
     
            return preg_replace('/(https?:\/\/([^ ]*)\/([^ \/]*)\.(png|gif|jpg|jpeg))/Ui', '<button onclick="javascript:showOne('.$id.')">show image</button><img id="m'.$id.'" class="rounded mx-auto d-block" src="$1" title="" style="display: none !important;" />', $string);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <script> { 
    function showOne(id) {
    var img1 = document.getElementById("myimg" + id);
        img1.style.display = "block !important";
    }
    </script>
    Coté script HTML tout me semble correcte.
    Nom : Sans titre.png
Affichages : 667
Taille : 9,1 Ko

    Merci
    Vous ne pouvez pas faire confiance à un code que vous n'avez pas totalement rédigé vous-même.

  4. #4
    Membre habitué Avatar de XeGregory
    Homme Profil pro
    Passionné par la programmation
    Inscrit en
    Janvier 2017
    Messages
    260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Passionné par la programmation
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2017
    Messages : 260
    Points : 171
    Points
    171
    Par défaut
    D’après la console de mon navigateur ma fonction js s’exécute bien, sauf quel me renvoie une erreur : TypeError: img1 is null
    Vous ne pouvez pas faire confiance à un code que vous n'avez pas totalement rédigé vous-même.

  5. #5
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("myimg" + id);
    alors que l'on trouve dans ton code HTML
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <img id="myim1" class="rounded mx-auto d-block" src="..." title="" style="display: none !important;" />
    l'ID n'est pas correcte, la même entre les deux écritures, de plus vire moi ce !important qui n'apporte rien.

  6. #6
    Membre habitué Avatar de XeGregory
    Homme Profil pro
    Passionné par la programmation
    Inscrit en
    Janvier 2017
    Messages
    260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Passionné par la programmation
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2017
    Messages : 260
    Points : 171
    Points
    171
    Par défaut
    - Oui effectivement problème d'ID, mème avec l'id correcte cela ne fonction pas.
    - Si je mes pas le !Important mon image reste visible : display: none n'est pas pris en compte.

    Lorsque que l’exécute la fonction la console me renvoie une erreur : TypeError: showone is not defined
    Nom : Capture1.PNG
Affichages : 658
Taille : 3,0 Ko

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
           <script> { 
             function showone(id) {
               var img1 = document.getElementById(id);
               img1.style.display = "block";
             }
           </script>
    Nom : Capture.PNG
Affichages : 662
Taille : 11,3 Ko
    Vous ne pouvez pas faire confiance à un code que vous n'avez pas totalement rédigé vous-même.

  7. #7
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    Attention à la casse (majuscules / minuscules). showone n’est pas la même chose que showOne.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  8. #8
    Membre habitué Avatar de XeGregory
    Homme Profil pro
    Passionné par la programmation
    Inscrit en
    Janvier 2017
    Messages
    260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Passionné par la programmation
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2017
    Messages : 260
    Points : 171
    Points
    171
    Par défaut
    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
    <!DOCTYPE html>
    <html>
       <head>
          <title>Test</title>
       </head>
       <body>
          <div class="card-block">
             <p class="card-text">Mon Image <button onclick="showone(im1)">show image</button><img id="im1" class="rounded mx-auto d-block" src="https://upload.wikimedia.org/wikipedia/commons/thumb/b/b6/Image_created_with_a_mobile_phone.png/375px-Image_created_with_a_mobile_phone.png" title="" style="display:none;"></p>
          </div>
            <script type="text/javascript"> { 
             function showone(id) {
               var img1 = document.getElementById(id);
               img1.style.display = "block";
             }
           </script>
       </body>
    </html>

    Je ne comprend pas l'ID est correcte ,la casse (showone) est bien respecté.
    Nom : Capture.PNG
Affichages : 690
Taille : 23,9 Ko
    La console : ReferenceError: showone is not defined.
    Vous ne pouvez pas faire confiance à un code que vous n'avez pas totalement rédigé vous-même.

  9. #9
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Tu as deux erreurs dans ton code.

    Une erreur dans le HTML :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <button onclick="showone(im1)">show image</button>
    im1 est une chaine et non une variable JavaScript, il te faut donc mettre des quottes
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <button onclick="showone('im1')">show image</button>
    observe la coloration syntaxique.


    Une dans le code JavaScript :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript"> {
    il te faut supprimer l'accolade ouvrante
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <script>
      function showone(id) {
        var img1 = document.getElementById(id);
        img1.style.display = "block";
      }
    </script>

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

Discussions similaires

  1. [MySQL] Afficher une IMAGE dans une BDD via PHP
    Par lothar59 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 07/01/2011, 15h17
  2. [Javascript][php]afficher/cacher lignes tableau
    Par bouba83 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 28/12/2006, 13h55
  3. cacher afficher une image-lien
    Par Alex35 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 07/11/2006, 12h24
  4. Afficher cacher image
    Par bressan dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 26/07/2006, 15h32
  5. Afficher une image avec PHP
    Par a_zouggari dans le forum Langage
    Réponses: 2
    Dernier message: 22/04/2006, 18h02

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