Affichage JavaScript dans php

Résolu
salyxo Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -  
salyxo Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Mon problème est le suivant :
Je veux afficher un nuancier en JavaScript sur une page php et l'affichage du nuancier ne se fait pas bien que le script, lui fonctionne...

Voici le code JavaScript dans le head :
<script language="javascript">
bloc1 = true;
function hexa1(couleur1)
{
  if(bloc1)
  {
	document.form.n_coul1.value = couleur1;
	document.getElementById('couleur1').style.background=couleur1;
  }
}
function palette1()
{
  document.write("<table border='0' cellpadding='0' cellspacing='0' ><tr>"); 
  var h=new Array('00','33','66','99','CC','FF'); 
  var col=""; 
  for(var i=0;i<6;i++)
  {
	for(var j=0;j<6;j++)
	{
	  for(var k=0;k<6;k++)
	  {
		col="#"+h[i]+h[j]+h[k];
		document.write
		(
		  "<td width='10' height='10' bgcolor='"+col+"' onMouseOver=\"hexa1('"+col+"')\" onClick=\"if(bloc1) { bloc1 = false; } else { bloc1 = true; }\"></td>"
		);
	  }
	}
	document.write("</tr>");
  }
  document.write("</table>");
}
</script>



Et voici l'appel de la fonction dans le body de la page :

<?php
	echo "<script language=\"JavaScript\">palette1();</script>\n";
	echo "<input type=\"text\" name=\"aff1\" id=\"couleur1\" class=\"l100\"><br />\n";
	echo "<input type=\"text\" name=\"n_coul1\" class=\"l100\">\n";
?>


Les deux input txt s'affiche parfaitement et témoignent que le script fonctionne.
Mais la palette, elle, ne s'affiche pas.

Merci d'avance de vos réponse.

A voir également:

4 réponses

DoulyCreations Messages postés 187 Date d'inscription   Statut Membre Dernière intervention   19
 
Salut,

Problème résolu :

<html>
<head>
<title></title>
<script language="javascript">
bloc1 = true;
function hexa1(couleur1)
{
  if(bloc1)
  {
	document.getElementById('n_coul1').value = couleur1;
	document.getElementById('couleur1').style.background=couleur1;
  }
}
function palette1()
{
  document.write("<table border='0' cellpadding='0' cellspacing='0' ><tr>"); 
  var h=new Array('00','33','66','99','CC','FF'); 
  var col=""; 
  for(var i=0;i<6;i++)
  {
	for(var j=0;j<6;j++)
	{
	  for(var k=0;k<6;k++)
	  {
		col="#"+h[i]+h[j]+h[k];
		document.write
		(
		  "<td width='10' height='10' bgcolor='"+col+"' onMouseOver=\"hexa1('"+col+"')\" onClick=\"if(bloc1) { bloc1 = false; } else { bloc1 = true; }\"></td>"
		);
	  }
	}
	document.write("</tr>");
  }
  document.write("</table>");
}
</script>
</head>

<body>

<script language="JavaScript">palette1();</script>

<form>
<input type="text" name="aff1" id="couleur1" class="l100"><br />
<input type="text" id="n_coul1" class="l100">
</form>
</body>
</html>


0
salyxo Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
 
Malheureusement non, pas résolu...
J'ai appliqué, mais le même problème.
En fait, je pense qu'il s'agit d'un problème de quotes ("") dans la partie d'affichage de la palette du JavaScript.

L'affiche en html est parfait, mais pas en PHP...

Merci quand même d'avoir essayé ;-)

Je relance donc la question...
0
salyxo Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
 
Alors, après plusieurs tests, j'ai réussi à isoler le problème, mais sans trouver la solution...
En HTML, affichage parfait. En PHP, en fait le nuancier s'affiche, mais sans les couleurs de fond (background-color)

C'est donc uniquement sur cette partie de code que se situe le problème et sans doute dans les quottes et double-quottes... :

"<td width=\"10\" height=\"10\" bgcolor=\""+col+"\" onMouseOver=\"hexa1('"+col+"')\" onClick=\"if(bloc1) { bloc1 = false; } else { bloc1 = true; }\">1</td>"


Le reste est parfait... (Le 1 qui a été ajouté dans le td me permet de voir si l'affichage est fait ou pas et il se fait)
0
salyxo Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
 
Bon... Il faut vraiment chercher...
Mais j'ai trouvé, pour ceux qui ont un problème semblable...

En fait, c'est tout simplement un problème CSS...

Voici le bon code :

style=\"background-color:"+col+"\"

au lieu de :
bgcolor=\""+col+"\"
0