Probleme de syntaxe (enfin j'espere!!)

[Résolu]
Signaler
Messages postés
968
Date d'inscription
jeudi 20 mai 2004
Statut
Membre
Dernière intervention
26 avril 2013
-
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
-
Salut tout le monde;alors voila je crois que ya un probléme de syntaxe ds mon code qui est censé ecrire les ligne de mon tableau de deux couleurs différentes de maniéres alternatives
voici mon code:

for($i=0;$i<$nbr_prod;$i++){
if($i%2==0){
$couleur="#E6E6E6";
$couleur2="#A9FF8F";}

else {
$couleur="#C0C0C0";
$couleur2="#A9FF8F";}


echo ' <tr bgcolor=',$couleur,' onmouseover="this.style.backgroundColor=',$couleur2,'" onmouseout="this.style.backgroundColor=',$couleur,'">

il ne comprends pas la variable couleur par contre en dur il marche bien!!!!
help please

8 réponses

Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Ensuite, pour ce qui concerne le fait que le rollover ne marche pas :-)

Voila :

echo ' <tr bgcolor="',$couleur,'" onmouseover="this.style.backgroundColor=\'',$couleur2,'\'" onmouseout="this.style.backgroundColor=\'',$couleur,'\'">';

Tu as oublie les d'echapper un '

la couleur dans ton this.style.backgroundColor doit etre entre ''
donc : "this.style.blablabla = \'',$couleur,'\'"

Vla.
Messages postés
8
Date d'inscription
vendredi 24 septembre 2004
Statut
Membre
Dernière intervention
14 janvier 2005

Essaie:



echo "<tr
bgcolor=',$couleur,'
onmouseover="this.style.backgroundColor=',$couleur2,' "
onmouseout="this.style.backgroundColor=',$couleur,'">";
Messages postés
968
Date d'inscription
jeudi 20 mai 2004
Statut
Membre
Dernière intervention
26 avril 2013
1
merci je viens de test mais ce n'est pas bon :(((
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
Bonjour,

<TR onmouseover="this.style.backgroundColor='<?echo $couleur2;?>';" onmouseout="this.style.backgroundColor='<?echo $couleur;?>';>" <!--EndFragment-- bgcolor="<?php echo $couleur;?>">?>
<tr bgcolor="<?php echo $couleur;?>"
onmouseover="this.style.backgroundColor='<?php echo $couleur2;?>';"
onmouseout="this.style.backgroundColor='<?php echo $couleur;?>';>"
<?php

peut-être ? enfin, pas loin ...
Cordialement. Bul. ~Site~~[mailto:marcelBultez@tiscali.fr Mail]~
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
Bonjour,


«tr bgcolor="«?php echo $couleur;?»"
onmouseover="this.style.backgroundColor='«?php echo $couleur2;?»';"
onmouseout="this.style.backgroundColor='«?php echo $couleur;?»';»"

remplacer « et » par < et >
( sinon pas d'affichage ici )
Cordialement. Bul. ~Site~~[mailto:marcelBultez@tiscali.fr Mail]~
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Hello,

echo '';
for($i=0;$i<10;$i++){
if($i%2==0){
$couleur=\"#E6E6E6\";
$couleur2=\"#A9FF8F\";}

else {
$couleur=\"#C0C0C0\";
$couleur2=\"#A9FF8F\";}

echo ' ----
';
echo 'blabla, ';

}
echo '
';
Messages postés
968
Date d'inscription
jeudi 20 mai 2004
Statut
Membre
Dernière intervention
26 avril 2013
1
merci a toi malalam
tjrs la pr me sauver :)))

bon pr eviter d'autres questions cons si qlq'un peut m'aider a trouver une bonne explication des ' et " ce sera bien cool

on en apprend tous les jours!!!
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
De rien :-) J'avais pas vu que c'etait toi en fait lol. Ca avance?

Sinon heu...pas moi, pour l'explication !

Enfin en gros...par convention :
les attributs HTML sont entre " "

Pour ce qui concerne les attributs definis en javascript, c'est entre ' '
simplement parce que, par exemple, sur un onmouseover, tu ouvres ca avec " " donc apres, pour attribuer une valeur a ce que tu veux modifier, tu ne peux pas remettre ca entre " " sinon le client web va croire que tu fermes ton "...
heu...
exemple lol :onmouseover "this.style.backgroundColor "red""
Tu vois bien qu'il y a un probleme...en toute logique, tu ouvres a "this.style... et tu fermes a ="
donc on fait : onmouseover "this.style.backgroundColor 'red'"

Ensuite, ca se complique avec des print ou echo en php...forcement. Eux memes etant en general entre "" ou ''
Quand tu generes du code HTML a la volee, tu as forcement besoin , par moment, de mettre un " ou un ' , mais tu es coince parce que ton echo s'est deja ouvert avec ca! Donc, y a le caractere d'echappement : \
Tu le places avant un quote (" ou ') et ca indique a PHP de l'afficher, pas de l'interpreter, tout simplement.

donc :echo 'onmouseover "this.style.backgroundColor \'red\'"';
ou mais c'est moins bien :echo "onmouseover "this.style.backgroundColor 'red'"";

Tu dois echapper le quote utilise pour contenir ton echo, en fait.

C'est plus clair?