Foros del Web » Programando para Internet » Javascript »

Guardar datos en cookies

Estas en el tema de Guardar datos en cookies en el foro de Javascript en Foros del Web. Buenas tardes, querría saber de qué manera puedo guardar en una cookie varios datos distintos recogidos de cuadros de texto, actualmente recojo solo un dato ...
  #1 (permalink)  
Antiguo 18/11/2008, 09:21
FJE
 
Fecha de Ingreso: noviembre-2008
Mensajes: 29
Antigüedad: 16 años
Puntos: 0
Guardar datos en cookies

Buenas tardes, querría saber de qué manera puedo guardar en una cookie varios datos distintos recogidos de cuadros de texto, actualmente recojo solo un dato (color de fondo de pantalla), pero me gustaría también guardar color de letra y de enlaces, ahora mismo tengo el siguiente código, pero no sé cómo concatenar el resto de valores para añadirlos al color de fondo:

function guardarCookies() {
var hoy = new Date()
var expiracion = new Date()
expiracion.setTime(hoy.getTime() + 1000*60*60*24*365)
setCookie("fondo", fondo.value, expiracion)
}

Un saludo y gracias.
  #2 (permalink)  
Antiguo 18/11/2008, 09:33
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
Respuesta: Guardar datos en cookies

¿Qué tienes dentro de la función setCookie?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 18/11/2008, 13:04
FJE
 
Fecha de Ingreso: noviembre-2008
Mensajes: 29
Antigüedad: 16 años
Puntos: 0
Respuesta: Guardar datos en cookies

Gracias por tu interés David, pues dentro de la función setCookie tengo esto:

function setCookie(nombre, value, expira) {
document.cookie = nombre + "=" + value + "; expires=" + expira.toGMTString();
}

Estoy bastante perdido con este tema, consigo que funcione con un solo dato, pero cuando intento guardar más creo que se pisan al guardarse y empieza a funcionar mal

Un saludo y gracias.
  #4 (permalink)  
Antiguo 18/11/2008, 13:09
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
Respuesta: Guardar datos en cookies

Exacto, estás reemplazando el valor cada vez que asignas uno nuevo, deberías concatenarlo (+=) en lugar de una asignación directa (=).
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 18/11/2008, 13:53
FJE
 
Fecha de Ingreso: noviembre-2008
Mensajes: 29
Antigüedad: 16 años
Puntos: 0
Respuesta: Guardar datos en cookies

Pero una cosa, ese += que indicas dónde lo tengo que meter??? ahí donde lo he puesto o dónde? y otra cosa, solo con eso ya funcionaría el resto de funciones? no tendría que tocar nada en guardarCookies o en getCookie?

function setCookie(nombre, value, expira) {
document.cookie += nombre + "=" + value + "; expires=" + expira.toGMTString();
}


En getCookie tengo esto que no lo había puesto aún:

function getCookie(nombre) {
var search = nombre + "="
if (document.cookie.length > 0) {
offset = document.cookie.indexOf(search)
if (offset != -1) {
offset += search.length
fin = document.cookie.indexOf("x", offset)
if (fin == -1)
fin = document.cookie.length
return unescape(document.cookie.substring(offset, fin))
}
}
}


Un saludo y disculpa las molestias.
  #6 (permalink)  
Antiguo 18/11/2008, 13:53
FJE
 
Fecha de Ingreso: noviembre-2008
Mensajes: 29
Antigüedad: 16 años
Puntos: 0
Respuesta: Guardar datos en cookies

Dupliqué la respuesta, pero ya la he quitado, aunque no sé cómo borrar del todo el mensaje xD
  #7 (permalink)  
Antiguo 18/11/2008, 13:56
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
Pregunta Respuesta: Guardar datos en cookies

¿Y por qué tú mismo no pruebas y nos cuentas si funciona o no?.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #8 (permalink)  
Antiguo 18/11/2008, 14:05
FJE
 
Fecha de Ingreso: noviembre-2008
Mensajes: 29
Antigüedad: 16 años
Puntos: 0
Respuesta: Guardar datos en cookies

Actualmente me encuentro en mi casa y no tengo el resto de código que necesito (que aunque sea poco con lo verde que estoy en esto me llevaría un rato) lo tengo en el ordenador de la oficina, si hubiera estado allí ya lo habría probado, no ha sido por buscar la solución fácil, créeme.

Mañana lo pruebo y ya te comento.

Gracias de nuevo.
  #9 (permalink)  
Antiguo 19/11/2008, 05:58
FJE
 
Fecha de Ingreso: noviembre-2008
Mensajes: 29
Antigüedad: 16 años
Puntos: 0
Respuesta: Guardar datos en cookies

Buenas tardes, ya lo he podido probar y sigue fallando más o menos igual que antes, sigue haciendo cosas raras con los colores. Las funciones las tengo así:

function setCookie(nombre, value, expira) {
document.cookie += nombre + "=" + value + "; expires=" + expira.toGMTString();
}

function getCookie(nombre) {
var search = nombre + "="
if (document.cookie.length > 0) {
offset = document.cookie.indexOf(search)
if (offset != -1) {
offset += search.length
fin = document.cookie.indexOf("x", offset)
if (fin == -1)
fin = document.cookie.length
return unescape(document.cookie.substring(offset, fin))
}
}
}


function guardarCookies() {
var hoy = new Date()
var expiracion = new Date()
expiracion.setTime(hoy.getTime() + 1000*60*60*24*365)
setCookie("fondo", fondo.value, expiracion)
setCookie("fuente", fuente.value, expiracion)
}

function cargar() {
cadfondo=getCookie("fondo");
if (cadfondo!="")
document.bgColor=cadfondo;

cadfuente=getCookie("fuente");
if (cadfuente!="")
document.fgColor=cadfuente;
}

La función cargar la tengo puesta aquí: <BODY onLoad="cargar();">

¿Qué sigo haciendo mal? No tengo ni idea, llevo 2 días haciendo pruebas y no consigo que salga bien
  #10 (permalink)  
Antiguo 19/11/2008, 11:05
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
Respuesta: Guardar datos en cookies

mmm... corrigiéndome a mí mismo, no es necesario concatenar para guardar las cookies, debes guardarlas como lo estabas haciendo. Ahora, algunas recomendaciones para que funcione. Cambia el indexOf("x", offset) por indexOf(";", offset), ya que el delimitador para cada valor es ;. También, haz un escape(value) a la hora de guardar para que puedas guardar caracteres especiales.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #11 (permalink)  
Antiguo 20/11/2008, 07:02
FJE
 
Fecha de Ingreso: noviembre-2008
Mensajes: 29
Antigüedad: 16 años
Puntos: 0
Respuesta: Guardar datos en cookies

Hola de nuevo, cambiando el indexOf("x", offset) por indexOf(";", offset) ya ha funcionado a la perfección, no sabía que eso servía para delimitar y claro, lo tenía así puesto desde el principio y por eso nunca me llegó a funcionar bien.

Gracias por tu paciencia
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 18:40.