Foros del Web » Programando para Internet » Javascript »

Guardar información del color

Estas en el tema de Guardar información del color en el foro de Javascript en Foros del Web. Hola. Tengo una tabla, en la cual, a través de una función de javascript, al darle doble click, cambia el color de la celda. El ...
  #1 (permalink)  
Antiguo 07/10/2011, 12:44
 
Fecha de Ingreso: marzo-2010
Mensajes: 35
Antigüedad: 14 años, 1 mes
Puntos: 1
Guardar información del color

Hola.

Tengo una tabla, en la cual, a través de una función de javascript, al darle doble click, cambia el color de la celda.



El problema está en que cuando actualizo la página, obviamente el color vuelve a su estado original (blanco) y necesitaría que al menos hasta cerrar el navegador, se conservará el color, por mucho que actualice. Había pensando en cookies, pero no lo se...

¿Cómo podría hacerlo, sin utilizar base de datos?
  #2 (permalink)  
Antiguo 07/10/2011, 13:11
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 13 años, 6 meses
Puntos: 511
Respuesta: Guardar información del color

Hola que tal.

Tu tema no tiene nada que ver con PHP pide a un moderador que cambie tu tema al foro correspondiente

Saludos
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125
  #3 (permalink)  
Antiguo 08/10/2011, 00:41
Avatar de America|UNK  
Fecha de Ingreso: noviembre-2006
Ubicación: Piura - Perú
Mensajes: 582
Antigüedad: 17 años, 5 meses
Puntos: 56
Respuesta: Guardar información del color

Te paso la clase cookies que tengo:
Código Javascript:
Ver original
  1. var cookies = {
  2.         set : function(n,v,days){ // set(string(cookieName), string(cookieVal), int(dias))
  3.             var d = new Date(), e = days || 365;
  4.             d.setDate(d.getDate()+e);
  5.             document.cookie=n+ "=" +escape(v)+ ((e==null) ? "" : "; expires="+d.toGMTString()) + "; path=/";
  6.         },
  7.         get : function(n){ // get(string(cookieName))
  8.             if(document.cookie.length>0){
  9.                 var c_start=document.cookie.indexOf(n + "=");
  10.                 if (c_start!=-1){
  11.                     c_start=c_start + n.length+1;
  12.                     var c_end=document.cookie.indexOf(";",c_start);
  13.                     if (c_end==-1) c_end=document.cookie.length;
  14.                     var r = unescape(document.cookie.substring(c_start,c_end));
  15.                     return r == '' ? null : r;
  16.                 }
  17.             }
  18.             return null;
  19.         },
  20.         unset: function(n){
  21.             this.set(n,"",-1);
  22.         }
  23.     };

Ahora guardando datos seleccionados en cookies:

Código CSS:
Ver original
  1. <style>
  2. td {cursor:pointer}
  3. .seleccionado {background:lightgreen}
  4. </style>
Código HTML:
Ver original
  1. <tr id='nombrePerson'>
  2.     <td>david</td><td>pedro</td><td>alex</td>
  3. </tr>


Código Javascript:
Ver original
  1. (function(){
  2.     var personsTD = document.getElementById('nombrePerson').getElementsByTagName('td'),i,save,l=personsTD.length,
  3.     cambiar = function(el){
  4.         el.className = el.className != 'seleccionado' ? 'seleccionado' : ''
  5.     },
  6.     guardar = function(){ //guardar en cookie
  7.         save = []
  8.         for(i=0;i<l;i++){if(personsTD[i].className == 'seleccionado') save.push(i)}
  9.         cookies.set('INFO_COLOR',save.join(','),365)
  10.     }
  11.    
  12.     var info = (cookies.get('INFO_COLOR') || '').split(','),j,k= info!= '' ? info.length : 0
  13.     for(i=0;i<l;i++){
  14.         for(j=0;j<k;j++){if(info[j] == i) personsTD[i].className = 'seleccionado'} //estilizar celdas guardadas
  15.         personsTD[i].ondblclick = function(){cambiar(this);guardar()}
  16.     }
  17. })()
__________________
/* El que atiende, entiende..., el que entiende, aprende!.
Desarrollo Web Freelance, Contactar */
  #4 (permalink)  
Antiguo 10/10/2011, 03:47
 
Fecha de Ingreso: marzo-2010
Mensajes: 35
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: Guardar información del color

ostia, que complicado no? xD
  #5 (permalink)  
Antiguo 10/10/2011, 08:34
Avatar de America|UNK  
Fecha de Ingreso: noviembre-2006
Ubicación: Piura - Perú
Mensajes: 582
Antigüedad: 17 años, 5 meses
Puntos: 56
Respuesta: Guardar información del color

en que parte?. Inserta el código de los cookies y el css en el head de tu página y el código de los colores después de la tabla. Si algo no entiendes me avisas :P
__________________
/* El que atiende, entiende..., el que entiende, aprende!.
Desarrollo Web Freelance, Contactar */
  #6 (permalink)  
Antiguo 10/10/2011, 10:48
 
Fecha de Ingreso: marzo-2010
Mensajes: 35
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: Guardar información del color

Y si solo quisiera que el color se guardara hasta que cerrara el navegador?

Gracias!

Última edición por josemota; 10/10/2011 a las 10:56
  #7 (permalink)  
Antiguo 10/10/2011, 12:32
Avatar de America|UNK  
Fecha de Ingreso: noviembre-2006
Ubicación: Piura - Perú
Mensajes: 582
Antigüedad: 17 años, 5 meses
Puntos: 56
Respuesta: Guardar información del color

Busca más información sobre sessionStorage

Así reemplazarías var cookies por esto:

Código Javascript:
Ver original
  1. var cookies = {
  2.     set : function(n,v){
  3.         sessionStorage[n] = v
  4.     },
  5.     get: function(n){
  6.         return sessionStorage[n]
  7.     }
  8. };
__________________
/* El que atiende, entiende..., el que entiende, aprende!.
Desarrollo Web Freelance, Contactar */

Etiquetas: color, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:37.