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 :

variable DIV et OnMouseOver


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations forums :
    Inscription : Mars 2011
    Messages : 4
    Points : 3
    Points
    3
    Par défaut variable DIV et OnMouseOver
    Bonjour,
    je viens de créer une page avec une image et un survol de zones.
    Les coordonnées des <area> sont dans la base, et sont récupèrés dans une boucle. A différends endroits, en cliquant sur ces zones, on a un descriptif complet en pdf. Les paramètres lot par lot sont contenu dans une base mysql. Cette partie fonctionne très bien.
    Dans un deuxième temps, j'ai créer un div qui réagit suronmouseover et onmouseout.
    La partie mécanique fonctionne ( le div s'affiche bien sur le survol et disparait sur le out).
    Le problème est le contenu du div.
    Il doit afficher les variables de l'enregistrement courant de la bdd.
    mais bien que dans la boucle while, les variables sont vides (pourtant elles fonctionnent dans la map en affichant dans title le contenu correct.
    Si quelqu'un a une idée ? je joint le listing :

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    <?php require_once('Connections/test.php'); 
    mysql_select_db($database_test, $test);
    $query_toto = "SELECT * FROM grille WHERE numprog = 1 ORDER BY numlots ASC";
    $toto = mysql_query($query_toto, $test) or die(mysql_error());
    $row_toto = mysql_fetch_assoc($toto);
    $totalRows_toto = mysql_num_rows($toto);
    ?>
    <title>test dynadiv</title>
    <link rel="stylesheet" href="style.css" type="text/css" media="screen" />
    <script language="Javascript">
    <!--
    function toggleDiv(id,flagit) {
    if (flagit=="1"){
    if (document.layers) document.layers[''+id+''].visibility = "show"
    else if (document.all) document.all[''+id+''].style.visibility = "visible"
    else if (document.getElementById) document.getElementById(''+id+'').style.visibility = "visible"
    }
    else
    if (flagit=="0"){
    if (document.layers) document.layers[''+id+''].visibility = "hide"
    else if (document.all) document.all[''+id+''].style.visibility = "hidden"
    else if (document.getElementById) document.getElementById(''+id+'').style.visibility = "hidden"
    }
    }
    //-->
    </script>
    <style type="text/css">#divtest {position:absolute; top: 100; left: 200; width:200; visibility:hidden}</style>
    </head>
    <body>
    <img src="images/parcelles.png" border="0" usemap="#parcelles">
    <map name="parcelles">
    <?php do { 
            $lot =  $row_toto['numlots'];
            $prix =  $row_toto['prix'];
            $status = $row_toto['status'];
            $carte = $row_toto['map'];
            if ($status == 'RESERVE' ): ?>
                <area shape="poly" coords="<?php echo $row_toto['map']; ?>"  alt="<?php echo $row_toto['numlots']; ?>" title="Lot <?php echo $row_toto['numlots'];" ?> - Réservé."/>
            <?php else:  ?>  
            <area shape="poly" coords="<?php echo $row_toto['map']; ?>" title="<?php echo $row_toto['lots']; ?> "<?php echo $row_toto['prix']; ?>" " href="./images/Lot<?php echo $row_toto['numlots']; ?>.pdf"   alt="<?php echo $row_toto['numlots']; ?>" onMouseOver="toggleDiv('divtest',1)" onMouseOut="toggleDiv('div2',0)"/>
    		<?php endif;  ?> 
    <div id="divtest" style="position:absolute; top:90px; left:238px; border:1px; visibility:hidden; border-width:thin; border-style:dashed; border-color:red; background-color:blue ; color:White; width: 171px; height: 103px;" > LOT :<?php echo $row_toto['numlots']; ?>
    </div>
     
    	  <?php } while ($row_toto = mysql_fetch_assoc($toto)); ?>
    </map>
     
    </body>
    </html>
    <?php
    mysql_free_result($toto);
    ?>
    Merci d'avance

  2. #2
    Membre confirmé Avatar de nadox
    Homme Profil pro
    Développeur
    Inscrit en
    Février 2010
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Février 2010
    Messages : 360
    Points : 551
    Points
    551
    Par défaut
    Bonjour,
    Euh.... c'est normal ce code ?
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <?php echo$row_toto['numlots']; ?>

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations forums :
    Inscription : Mars 2011
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    vous avez raison, mais c'était juste une erreur de recopie du code . Dans mon source il y a bien l'espace. Merci quand même.
    Une autre idée ?
    PS: j'ai corrigé le message d'origine

  4. #4
    Membre confirmé Avatar de nadox
    Homme Profil pro
    Développeur
    Inscrit en
    Février 2010
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Février 2010
    Messages : 360
    Points : 551
    Points
    551
    Par défaut
    Recopie ? Vous ne connaissez pas ctrl+c/ctrl+v ?
    Bref, il est aussi toujours plus agréable de pouvoir tester le code directement plutôt que de lire du PHP pour débugger du javascript ! (afficher la source dans le navigateur, ctrl+a, ctrl+c, ctrl+v ...)

    Sinon, je dirais que le soucis n'est de toute façon pas directement lié à javascript :
    Un ID doit être unique sur la page !

  5. #5
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations forums :
    Inscription : Mars 2011
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    effectivement. Sur le html généré je me retrouve avec autant d'instance du div que de d'enregistrements.
    J'ai extrait le div de la boucle, mais je ne vois pas comment remplir ce div avec la variable voulu.
    Elle reste sur l'enregistrement numero 1.
    une idée ?
    Merci

  6. #6
    Membre confirmé Avatar de nadox
    Homme Profil pro
    Développeur
    Inscrit en
    Février 2010
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Février 2010
    Messages : 360
    Points : 551
    Points
    551
    Par défaut
    Je garderais le div dans la boucle, mais en lui donnant un id différent à chaque tour de boucle.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <area shape="poly" coords="<?php echo $row_toto['map']; ?>" title="<?php echo $row_toto['lots']; ?> "<?php echo $row_toto['prix']; ?>" " href="./images/Lot<?php echo $row_toto['numlots']; ?>.pdf"   alt="<?php echo $row_toto['numlots']; ?>" onMouseOver="toggleDiv('<?php echo $idunique?>',1)" onMouseOut="toggleDiv('<?php echo $idunique?>',0)"/>
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <div id="<?php echo $idunique?>" style="position:absolute; top:90px; left:238px; border:1px; visibility:hidden; border-width:thin; border-style:dashed; border-color:red; background-color:blue ; color:White; width: 171px; height: 103px;" > LOT :<?php echo $row_toto['numlots']; ?>
    </div>

  7. #7
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations forums :
    Inscription : Mars 2011
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    en id unique j'ai repris l'index de ma base comme ça ca marche du tonnerre de zeus.
    Merci ô génie

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

Discussions similaires

  1. Affichage et Fermeture d'un div au onMouseOver et onMouseOut
    Par lelapinou dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 30/03/2010, 11h54
  2. [DIV][Javascript] créer une DIV sur onmouseover
    Par pmartin8 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 30/08/2006, 15h10
  3. <div id=contenu> hauteur variable avec scroll
    Par camyo dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 21/03/2006, 11h01
  4. <DIV> : Menu fixe mais contenu variable
    Par Hell dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 03/12/2005, 11h19

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