Bonjour à tous,
Le script ci dessous permet de changer de facon aléatoire la couleur d'une DIV lorsque l'on clique dessus.
Les couleurs disponibles se trouvent dans une table MYSQL, que je consulte pour alimenter un tableau javascript "ListeDesCouleurs".
Le problème est le suivant :
- Dans ma variable javascript "ListeDesCouleurs[numerodecouleur]" je récupére bien le nom de la couleur (donc la partie implémentation de cette variable via PHP fonctionne) mais par contre cela ne change pas la couleur de la DIV .
Par contre si j'ajoute la ligne de commande suivante : var ListeDesCouleurs = new Array ("yellow", "red", "lime", "black", "blue", "darkgreen"); en début de script (cela remplace donc le tableau créé en PHP) cela fonctionne !!!!!!!!
D'ou vient mon problème ????? je cale .........
A l'avance Merci de votre aide..........
La table :
-- Structure de la table `couleur`
--
CREATE TABLE `couleur` (
`FOND` varchar(20) NOT NULL default '',
`TEXTE` varchar(20) NOT NULL default '',
UNIQUE KEY `FOND` (`FOND`),
KEY `TEXTE` (`TEXTE`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Contenu de la table `couleur`
--
INSERT INTO `couleur` VALUES ('yellow', 'black');
INSERT INTO `couleur` VALUES ('red', 'black');
INSERT INTO `couleur` VALUES ('lime', 'black');
INSERT INTO `couleur` VALUES ('black', 'white');
INSERT INTO `couleur` VALUES ('blue', 'white');
INSERT INTO `couleur` VALUES ('darkgreen', 'white');
Le script :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled</title>
</head>
<script type="text/javascript">
function changecouleur(obj)
{
var nbcouleurs=ListeDesCouleurs.length;
numerodecouleur= Math.floor(Math.random() * nbcouleurs-1)+1;
el=document.getElementById(obj);
el.style.backgroundColor=ListeDesCouleurs[numerodecouleur];
}
</script>
</head>
<body>
<?php
ini_set ('max_execution_time', 0); // Aucune limite d'execution
mysql_connect("localhost", "root", "");
mysql_select_db("gestion du parc");
$couleurs=mysql_query("SELECT fond FROM couleur") or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$n=0;
?>
<!-- ---------- Déclaration du tableau dans javascript et copie des données ----- -->
<script type="text/javascript">
var ListeDesCouleurs = new Array(
<?php
while ($ligne=mysql_fetch_row($couleurs))
{
echo "new Array('".$ligne[0]."'),";
$n++;
}
?>
new Array(""));
</script>
<!-- --------------- Déclaration du tableau dans javascript et copie des données ----- -->
<?php
for($x=0; $x<$n; $x++)
{
$position=$x * 60;
?>
<div id="<?php echo $x ?>" style="position:absolute; left:50px;top:<?php echo $position ?>px;height:10px;width:150px; background-color:blue;" onclick="changecouleur(<?php echo $x ?>);"> Couleur bleu</div>
<?php
}
?>
</body>
</html>