11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

A partir de la pallette de couleurs, je veux créer un cookie
quand je clique sur une couleur. Le cookie es ensuite récupéré
en PHP pour être mis dans la partie STYLE.

S'il y a moyen que le texte change sans recharger la page.

Ce que je trouve dans mon cookie à la place du code de couleur
est "NaN".

de l'aide serait appréciée. Merci.

Création de la pallette des couleurs, la function :
<code>
<script type="text/javascript">
bloc = true;
function hexa(couleur)
{
if(bloc)
document.form.hexval.value = couleur;
}
function palette() {
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+h[j]+h[k];
document.write("<TD width='3' height='3' bgcolor='"+col+"' onMouseOver=\"hexa('"+col+"')\" onClick=\"if(bloc) { bloc = false; } else { bloc = true; }\"></TD>");
}
}
document.write("</tr>");
}
document.write("</TABLE>");
}
</SCRIPT>
</code>


Création du cookie, la function :
<code>
<SCRIPT language="JavaScript">
function setCookie(sName, sValue) {
var today = new Date(), expires = new Date();
expires.setTime(today.getTime() + (365*24*60*60*1000));
document.cookie = sName + "=" + encodeURIComponent(sValue) + ";expires=" + expires.toGMTString();
}
</SCRIPT>
</code>

Affichage de la pallette de couleurs et création du cookie :

<code>
<SCRIPT language="JavaScript">
palette();
</SCRIPT>
<form name="form">
<input type="button" name="hexval" size="9" onClick="javascript:setCookie('color',+hexval)">
</form>
</code>


Récupération du cookie en PHP :
<code>
<?php echo $_COOKIE['color']; ?>
</code>

Modifié par dan4 (23 Aug 2010 - 13:53)
Salut,

Je m'y connais pas trop en cookies, mais tu pourrais déjà commencer par là :
document.cookie = sName + "=" + encodeURIComponent(sValue) + ";expires=" + expires.toGMTString();


Vérifies déjà les valeurs de sName, encodeURIComponent(sValue) et expires.toGMTString(). A mon avis, l'une d'entre elles est incorrecte.
Bonjour,

Je pense qu'il faut remplacer "+hexval" par "this.value". Le code mériterait quelques autres modifications également. Smiley smile
Bonjour!
Négatif, ça marche pas.
Merci.

Julien Royer a écrit :
Bonjour,

Je pense qu'il faut remplacer "+hexval" par "this.value". Le code mériterait quelques autres modifications également. Smiley smile
Hello,
dan4 a écrit :
Bonjour!
Négatif, ça marche pas.
Merci.

Dans ce cas-là, pour t'aider, il faudrait un exemple en ligne.
Modifié par Julien Royer (24 Aug 2010 - 12:24)
Merci pour votre soutien!

Voici ce que j'ai fait après plusieurs tests. Le hasard du débutant Smiley smile

ceci : document.getElementById("TXT1").style.color = document.form.hexval.value;

dans :
<script type="text/javascript">
bloc = true;
function hexa(couleur)
{
if(bloc)
document.form.hexval.value = couleur;
document.getElementById("TXT1").style.color = document.form.hexval.value;
}
function palette() {
document.write("<TABLE style='border-width:1px; border-color:yellow; border-style:solid;' border='0' cellpadding='0' cellspacing='0' ><TR>");
var h=new Array('00','66','99','CC','FF');
var col="";
for(var i=0;i<5;i++) {
for(var j=0;j<5;j++) {
for(var k=0;k<5;k++) {
col="#"+h+h[j]+h[k];
document.write("<TD width='7' height='7' bgcolor='"+col+"' onMouseOver=\"hexa('"+col+"')\" onClick=\"if(bloc) { bloc = false; } else { bloc = true; }\"></TD>");
}
}
document.write("</tr>");
}
document.write("</TABLE>");
}
</SCRIPT>

ET :
ceci : onChange="this.style.color = document.form.hexval.value;"

dans :
<div align='center' style="position:absolute;bottom:55px;left:14px;z-index:1;filter:alpha(opacity=60);opacity: 0.6;-moz-opacity:0.6;">
<SCRIPT language="JavaScript">
palette();
</SCRIPT>
<form name="form">
<input style="font-family:Verdana;font-size:6px;text-align:center;" type="hidden" name="hexval" size="9" onChange="this.style.color = document.form.hexval.value;">
</form>
</div>

ET pour l'affichage ceci : <span id="TXT1">'.nl2br($row['texto']).'</span>

dans : le texte qui doit avoir une couleur personalisée.

Maintenant, il me reste à faire en sorte de pouvoir mettre le tout dans un COOKIE.

J'ai pensé à ajouter "onClick" et en PHP le code pour ajouter le cookie.. mais pas certain d'y arriver.

Julien Royer a écrit :
Hello,

Dans ce cas-là, pour t'aider, il faudrait un exemple en ligne.