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 :

Map et javascript


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 63
    Par défaut Map et javascript
    Salut,

    J'ai une avec quelques cases, j'ai fait une map de cette image.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <img src="css/grille.png" usemap="#Map" class="img_grille" />
                            <map name="Map">
                              <area shape="rect" id="1" coords="32,54,58,80" href="#" alt="1" onclick="alert(document.getElementById('clicked_area').value=this.id);return false" />
                              <area shape="rect" id="2" coords="60,55,84,78" href="#" alt="2" onclick="alert(document.getElementById('clicked_area').value=this.id);return false" />
                              <area shape="rect" id="3" coords="86,54,112,79" href="#" alt="3" onclick="alert(document.getElementById('clicked_area').value=this.id);return false" />
                              <area shape="rect" id="4" coords="113,54,139,79" href="#" alt="4" onclick="alert(document.getElementById('clicked_area').value=this.id);return false" />
                              <area shape="rect" id="5" coords="140,54,166,79" href="#" alt="5" onclick="alert(document.getElementById('clicked_area').value=this.id);return false" />
                            </map>


    Grâce à ce sujet : http://www.developpez.net/forums/d98...uee-image-map/ j'ai réussi à afficher une alert avec la valeur de la case.


    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <img src="css/grille.png" usemap="#Map" class="img_grille" />
                            <map name="Map">
                              <area shape="rect" id="1" coords="32,54,58,80" href="#" alt="1" onclick="alert(document.getElementById('clicked_area').value=this.id);return false" />
                              <area shape="rect" id="2" coords="60,55,84,78" href="#" alt="2" onclick="alert(document.getElementById('clicked_area').value=this.id);return false" />
                              <area shape="rect" id="3" coords="86,54,112,79" href="#" alt="3" onclick="alert(document.getElementById('clicked_area').value=this.id);return false" />
                              <area shape="rect" id="4" coords="113,54,139,79" href="#" alt="4" onclick="alert(document.getElementById('clicked_area').value=this.id);return false" />
                              <area shape="rect" id="5" coords="140,54,166,79" href="#" alt="5" onclick="alert(document.getElementById('clicked_area').value=this.id);return false" />
                            </map>
     
     
    <form name="recup_element" action="javascript:alert(document.getElementById('clicked_area').value)" method="get" />
    			<input type="hidden" name ="clicked_area" id="clicked_area" value="" />
    </form>



    Voiçi donc mon problème, en premier lieu je ne comprend pas comment fonctionne ce formulaire.

    Après quelques essais j'ai pu déterminer que l'alerte était celle des onclick, en effet cela fonctionne toujours si j'enlève le alert du form.


    Bref, pour commencer j'aimerais bien comprendre comment fonctionne tout ce formulaire.

    Merci !

  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
    Par défaut
    Bonjour,

    Il y a plein de mauvaises pratiques dans ce code, comme les onclick à répétition, l'affectation à l'intérieur de l'alert ou encore le javascript dans le form action. Tout ça est à éviter !

    Pour le fonctionnement, chaque onclick attribue à #clicked_area la valeur de l'id de l'area cliquée (1,2,3,4,5). Par contre sauf erreur il manque le code de soumission du formulaire dans ce que tu as montré.

    Si le but est d'envoyer une requête au serveur avec un ID différent selon l'area cliquée, je vois pas pourquoi tu utilises du javascript. Il suffit de mettre un href différent à chaque area.

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 63
    Par défaut
    Merci, je pense avoir compris ce que tu as expliqué

    En fait ce que je souhaite faire à la base c'est faire un loto, je souhaite sélectionner 3 des 5 cases ici présentes et ranger leurs valeurs dans un tableau.

    J'ai mis des onclick à répétition pour que lorsqu'on clique sur une des cases de la grille cela envoie la valeur dans un tableau, les onclick actuels sont juste là pour vérifier que chaque case à la bonne valeur.

    Ce que je ne parviens pas à faire c'est envoyer ces données et les récupérer dans un tableau en JS (le script JS est dans un fichier à part).

    Je veux bien une petite explication sur le commet je pourrais récupérer la valeur d'un champ, les mettre dans le tableau devrait aller tout seul ensuite.

    Merci beaucoup.




    EDIT : Autant pour moi j'ai oublié le bouton "envoyer" tu as raison, problème résolu !
    En revanche quand tu dit que l'utilisation répétée de onclick est mauvaise, que me conseillerais-tu d'utiliser à la place ? Car je ne voit vraiment pas comment je peux envoyer plusieurs valeurs en même temps...

  4. #4
    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
    Par défaut
    Si tu veux récupérer tes données en Javascript pour un pré-traitement avant l'envoi au serveur, tu peux faire comme ça en effet.

    L'attribut onclick en HTML est la méthode la moins pratique et flexible pour ajouter un évènement Javascript. Je te conseille d'utiliser les API addEventListener :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <img src="css/grille.png" usemap="#Map" class="img_grille" />
                            <map id="map" name="Map">
                              <area shape="rect" id="1" coords="32,54,58,80" href="#" alt="1" />
                              <area shape="rect" id="2" coords="60,55,84,78" href="#" alt="2"  />
                              <area shape="rect" id="3" coords="86,54,112,79" href="#" alt="3"  />
                              <area shape="rect" id="4" coords="113,54,139,79" href="#" alt="4"  />
                              <area shape="rect" id="5" coords="140,54,166,79" href="#" alt="5"  />
                            </map>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    var areas = document.querySelectorAll("#map area");
    for (var i = 0; i < areas.length; ++i) {
      var area = areas[i];
      area.addEventListener("click",function(event){
           document.getElementById('clicked_area').value = this.id;
      });
    }

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

Discussions similaires

  1. image map et javascript
    Par sam01 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 18/06/2010, 21h30
  2. Images map et javascript
    Par numerodix dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 26/03/2010, 13h04
  3. balise html "map" et javascript
    Par arnaud_matard dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 16/05/2008, 10h05
  4. image map et javascript
    Par Antho13 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 16/07/2007, 16h29
  5. Google Map API --> Javascript et code behind C#
    Par bridel dans le forum ASP.NET
    Réponses: 2
    Dernier message: 22/01/2007, 21h07

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