Estoy haciendo una prueba de formulario y cookies, mi objetivo es guardar las cookies en valores y mostrarlos luego, pero no me hace eso sino que me muestra "nomre=paco,nombre=paco,nombre=paco" en vez de "nombre=paco,apellido=perez,edad=30", pero si hago el alert de document.cookie si me lo muestra bien, las funciones para tratar los datos son estas:
function cookiesSaved(){
var valor;
//Añadir datos a las cookies
valor = document.getElementById("nombre").value;
document.cookie = "Nombre=" + valor;
valor = document.getElementById("apellido").value;
document.cookie = "Apellido=" + valor;
valor = document.getElementById("edad").value;
document.cookie = "Edad=" + valor;
}
function getValue(word){
var inicio;
var final;
var dato;
var cadena = document.cookie;
//coger el valor inicial de la cadena
inicio = cadena.indexOf(word,0);
//coger la longitud de la cadena
inicio = inicio.length;
//coger la cadena completa
final = cadena.indexOf(";",inicio);
dato = cadena.substring(inicio,final);
return dato;
}
function cookieLoad(){
var nombre;
var apellido;
var edad;
var cadena = document.cookie;
//asignar los datos a la variable
nombre = getValue("Nombre=");
apellido = getValue("Apellido=");
edad = getValue("Edad=");
//asignar valor a variable
cadenaHTML = nombre + "," + apellido + "," + edad;
//introducir codigo en el id usuario
document.getElementById("usuario").innerHTML = cadenaHTML;
alert(cadena);
}
Hola ,
No sé si lograste solucionar el problema por tu cuenta, pero el error está en el método getValue, en la linea
inicio = inicio.length;
La función indexOf te devuelve un número, no puedes hacer un length del número, de allí el error.
Si estás usando Chrome puedes usar las herramientas de desarrollador para debuggar el javascript de tus aplicaciones, te ayudará a solucionar errores como este.
http://blog.hostdime.com.co/como-utilizar-las-herramientas-para-desarrolladores-de-chrome/
Saludos