Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/03/2011, 00h47   #1
Invité de passage
 
Homme Laurent MILLEt
Inscription : mars 2011
Messages : 4
Détails du profil
Informations personnelles :
Nom : Homme Laurent MILLEt
Localisation : France, Eure (Haute Normandie)

Informations forums :
Inscription : mars 2011
Messages : 4
Points : 1
Points : 1
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 :
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
drannocsorg est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/03/2011, 17h54   #2
Membre expérimenté
 
Avatar de nadox
 
Homme
Développeur
Inscription : 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 : 545
Points : 545
Bonjour,
Euh.... c'est normal ce code ?
Code php :
1
2
 
<?php echo$row_toto['numlots']; ?>
nadox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/03/2011, 22h58   #3
Invité de passage
 
Homme Laurent MILLEt
Inscription : mars 2011
Messages : 4
Détails du profil
Informations personnelles :
Nom : Homme Laurent MILLEt
Localisation : France, Eure (Haute Normandie)

Informations forums :
Inscription : mars 2011
Messages : 4
Points : 1
Points : 1
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
drannocsorg est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/03/2011, 23h30   #4
Membre expérimenté
 
Avatar de nadox
 
Homme
Développeur
Inscription : 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 : 545
Points : 545
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 !
nadox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/03/2011, 23h54   #5
Invité de passage
 
Homme Laurent MILLEt
Inscription : mars 2011
Messages : 4
Détails du profil
Informations personnelles :
Nom : Homme Laurent MILLEt
Localisation : France, Eure (Haute Normandie)

Informations forums :
Inscription : mars 2011
Messages : 4
Points : 1
Points : 1
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
drannocsorg est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/03/2011, 00h09   #6
Membre expérimenté
 
Avatar de nadox
 
Homme
Développeur
Inscription : 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 : 545
Points : 545
Je garderais le div dans la boucle, mais en lui donnant un id différent à chaque tour de boucle.

Code php :
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 :
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>
nadox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/03/2011, 00h30   #7
Invité de passage
 
Homme Laurent MILLEt
Inscription : mars 2011
Messages : 4
Détails du profil
Informations personnelles :
Nom : Homme Laurent MILLEt
Localisation : France, Eure (Haute Normandie)

Informations forums :
Inscription : mars 2011
Messages : 4
Points : 1
Points : 1
en id unique j'ai repris l'index de ma base comme ça ca marche du tonnerre de zeus.
Merci ô génie
drannocsorg est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h06.


 
 
 
 
Partenaires

Hébergement Web