Problème click background color td au chargement d'une page

berniefrache
Invité n'ayant pas de compte PHPfrance

15 mai 2019, 15:01

Bonjour,

Je vous explique mon problème.

je dois faire un tableau (que j’ai fait classique <table></table>) et l'utilisateur va devoir cocher certaines cases <td>.
Chaque case est une variable booléenne stockée dans une base.

Quand l'utilisateur coche, elle devient bleue. Quand il décoche, elle redevient blanche .
A chaque coche, je fais fait un "UPDATE test SET $id = NOT $id WHERE id = 'user'"; pour modifier la valeur dans la base
Ca ca marche bien

Mon problème est le suivant :

L'utilisateur peut retourner sur son tableau plusieurs fois
Donc, lorsqu’il se reconnectera, toutes les cases déjà cochées auparavant doivent donc être cochées quand il se reconnecte

Je fais ca :

Code : Tout sélectionner

if ($id1_1==1) {echo "<style>#id1_1 {background-color:blue;}</style>" ;}
Or, quand je teste, les cases sont bien cochées mais quand je veux les décocher, l’UPDATE s’applique bien, mais la couleur ne change pas…elle change qu’au clic d’après (faut 2 clics pour que ca change quoi…).

Par contre, quand je me reconnecte, et que je coche une case pas cochée, l’update et la couleur changent bien au premier clic…

Du coup, ca créé un décalage. Et je sais pas trop pourquoi.

Voilà le code que j’utilise pour le changement de couleur.

Code : Tout sélectionner

$(document).ready(function () { $('td').click(function () { if(this.style.background == "" || this.style.background =="white") { $(this).css('background', 'blue'); } else { $(this).css('background', 'white'); } }); });
Est-ce que quelqu'un aurait une idée pour supprimer le clic en trop au chargement de la page ?

Merci,
Bernard

Mammouth du PHP | 1531 Messages

15 mai 2019, 15:13

tu utilise une fois background et une fois background-color, harmonise le tout ca ira mieux
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone de rubik's cube
Ingénieur Industriel Chimie / Biochimie