Cellule qui change de couleur et récupération de l'information

cs_Stephane33 Messages postés 630 Date d'inscription samedi 15 février 2003 Statut Modérateur Dernière intervention 9 octobre 2011 - 20 mars 2008 à 12:28
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 - 21 mars 2008 à 09:17
Je sors un peu de mon territoire de prédilection,
Je veux afficher une grille.
Chaque celulle à deux états possible oui ou non  défini par une couleur Vert ou Rouge.
L'utilisateur clique sur la cellule pour changer son état.
Je ne veux pas qu'a chaque click, la page soit rechargée (Ajax ?)
Et je dois récupérer un état pour chaque cellule.
Avez vous une achtuce...
D'avance Merci

Le savoir ne sert que si il est partagé par tous.

8 réponses

maelob Messages postés 943 Date d'inscription mardi 14 novembre 2006 Statut Membre Dernière intervention 7 août 2009 3
20 mars 2008 à 12:35
Bonjour!!!

Oui la meilleure solution si tu veux que ta page ne soit pas rechargée et que en même temps ça mette à jour ta base de donnée c'est l'ajax. Donc un petit lien

Sinon pour changer la couleur de la cellule il faut donner un id au td de la cellule et faire un truc du genre document.getElementById("ton_id").style.bgcolor = 'ta_couleur';

Pour récuperer l'etat je ne sais pas si on peut récuperer la valeur d'un td donc je préfére te dire de mettre un champs caché avec un id aussi ou de mettre ta valeur dans un div avce id et pareil tu recuperes avec document.getElementById('ton_id').value;
et pour la modifier document.getElementById('ton_id').value = "nouvelle valeur";

En espèrant que ça t'aide.

0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
20 mars 2008 à 12:45
Bonjour,

pour aller dans le même sens que maelob,
>>L'utilisateur clique sur la cellule pour changer son état.

si on fait ça coté client ( en javascript ), la page

ne sera pas rechargée... !!!

si ce "click" doit mettre quelque chose à jour coté serveur

ajax ou iframe caché ( la mode c'est ajax ! )

si uniquement un changement coté client

foultitude de solutions... comme toujours

il nous faudrait un ch'tit poil d'infos en plus, c'est tout
<hr />                Cordialement            Bul        
0
cs_Stephane33 Messages postés 630 Date d'inscription samedi 15 février 2003 Statut Modérateur Dernière intervention 9 octobre 2011 1
20 mars 2008 à 15:08
D'abord merci pour votre aide
En fait je veux faire une grille temps, ou l'utilisateur définit sa dispo. Il clique sur une cellule pour changer son état. Cela j'arrive à la faire.
Ce que je recherche maintenant, c'est
Lorsque l'utilisateur clique sans relacher (mousedown) et qu'il glisse sur les autres cellules , les cellules survolées prennent l'état de la première cellule (qui à pris l'évenement mousedown).

Par contre effectivement à priori je ne peux pas récupérer l'état de ces cellule.

Est-il possible de gérer cela dans une variable (Id/value) et la poster par la suite ?(à ma charge de récupérer ces données et des les sauvegarder.)

Le savoir n'est que le filtre de l'experience
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
20 mars 2008 à 15:27
>>Par contre effectivement à priori je ne peux pas récupérer l'état de ces cellule.
    à priori... pas de raison au contraire...
    on ne sait pas ce qu'est ( ce que tu appelles ! ) l'état de la cellule,
            mais si tu sais la modifier,  on peut récuprér cet état.
    tu parles de vert et rouge... supposons que ce soit le style.backgroundColor
       qui définisse cet état....
             cellule.style.backgroundColor="#FF0000"; ça met en rouge
             alert(cellule.style.backgroundColor)   ça affiche, et la cellule
             sur laquelle on clique est connue.
             oclick, onmouseUp, onmouseMove, onmouseDown, ... ou autres...
    ou alors, je ne comprend pas ton souci... ce qui est parfaitement possible !
<hr />                Cordialement            Bul        
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Stephane33 Messages postés 630 Date d'inscription samedi 15 février 2003 Statut Modérateur Dernière intervention 9 octobre 2011 1
20 mars 2008 à 18:31
Merci Bultez
Donc si j'ai bien compris je peux récupérer l'état de la cellule.
En faite cet état je veux le réalise avant la validation des données

Pour les cellules, quand
L'utilisateur clique avec sa souris sur une cellule appelons la A1
    1/ Celle ci change de couleur que si il relache le bouton de la souris
    2/ Il ne relache pas le bouton et déplace sa souris sur d'autres cellules (ligne ou colonne) à la manière d'excel et lorsque qu'il relache le bouton toutes les cellules survolées sont à la couleur de la première celulle.
Le savoir n'est que le filtre de l'experience
0
cs_Stephane33 Messages postés 630 Date d'inscription samedi 15 février 2003 Statut Modérateur Dernière intervention 9 octobre 2011 1
20 mars 2008 à 20:52
j'ai trouvé ça c'est une piste je vais creuser ce code
http://loc-europe.com/page/calendrier3.php
mais si vous avez mieux je suis preneur
Le savoir n'est que le filtre de l'experience
0
maelob Messages postés 943 Date d'inscription mardi 14 novembre 2006 Statut Membre Dernière intervention 7 août 2009 3
20 mars 2008 à 21:03
je t'ai deballé toute ma sciences dans mon premier message je ne peux pas t'aider plus mais ce que tu as est deja une bonne piste.


0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
21 mars 2008 à 09:17
Bonjour,

>>L'utilisateur clique avec sa souris sur une cellule appelons la A1
           onclick==>mémorisé=this.style.backgroundColor
          ou onmouseDown
    1/ Celle ci change de couleur que si il relache le bouton de la souris
          onMouseUp
   
2/ Il ne relache pas le bouton et déplace sa souris sur d'autres
cellules (ligne ou colonne)
          onMouseMove..==> this.style.backgroundColor=mémorisé
                            s'il n'y a pas eu de onMouseUp !
          à vérifier si onMouseMove est bien effectif sur les cellules, les lignes, table,...

<hr />                Cordialement            Bul        
0
Rejoignez-nous