Foros del Web » Programando para Internet » Javascript »

Una ayudita please con las dichosas cookies

Estas en el tema de Una ayudita please con las dichosas cookies en el foro de Javascript en Foros del Web. Hola, introduciendome en el mundo del javascript, poco a poco, me he quedado encallado y no lo entiendo, os expongo, Monto una agenda en javascript, ...
  #1 (permalink)  
Antiguo 04/05/2010, 04:32
 
Fecha de Ingreso: septiembre-2003
Ubicación: Barcelona
Mensajes: 41
Antigüedad: 20 años, 7 meses
Puntos: 0
Una ayudita please con las dichosas cookies

Hola,

introduciendome en el mundo del javascript, poco a poco, me he quedado encallado y no lo entiendo, os expongo,

Monto una agenda en javascript, nombre apellido, tlf, etc... , luego quiero mostrar el resultado de la agenda
contacto 1 ................
contacto2 .............
etc,,

En fin si cogo los datos del formulario, los guaro en variable y luego muestra con document.write, pero claro el ultimo que haya puesto, va machacando la información de la varialbe, me han comentado que usar cookies, utilizo un código que me han facilitado para intentar aclararme, pero por lo que he ido probando, me guarda igual el último dato del formulario, como he de hacer para que guarde todos, no lo entiendo?? , gracias,

var separador = "$" ⁄⁄caracter separador de campos en el texto de la cookie
var numElementos = 6 ⁄⁄numero de campos en el formulario



function Mostrar(nombre, formulario){
var pieza = null
var i = 0

if(CojerCookie(nombre) != null) {
nombre = CojerCookie(nombre)
pieza = nombre.split(separador)

for(i = 0; i < pieza.length; i++)
if (pieza[i] != null) {
formulario.elements[ i ].value = pieza[ i ]
}
}
}




function JuntarPiezas( formulario ) {

var entero = ''
⁄⁄inserta en un string cada elemento, separados por el caracter separado
for ( contador = 0; contador < numElementos - 1; contador++) {
entero += formulario.elements[ contador ].value + separador
}

⁄⁄inserta el ultimo elemento
entero += formulario.elements[ numElementos - 1 ].value

IntroducirCookie(entero)
}



function CojerValorCookie(indice) {
⁄⁄indice indica el comienzo del valor
var galleta = document.cookie
⁄⁄busca el final del valor, dado por ;, a partir de indice
var finDeCadena = galleta.indexOf(";", indice)
⁄⁄si no existe el ;, el final del valor lo marca la longitud total de la cookie
if (finDeCadena == -1)
finDeCadena = galleta.length

return unescape(galleta.substring(indice, finDeCadena))
}

function CojerCookie(nombre) {
var galleta = document.cookie
⁄⁄construye la cadena con el nombre del valor
var arg = nombre + "="
var alen = arg.length ⁄⁄longitud del nombre del valor
var glen = galleta.length ⁄⁄longitud de la cookie

var i = 0
while (i < glen) {
var j = i + alen ⁄⁄posiciona j al final del nombre del valor
if (galleta.substring(i, j) == arg) ⁄⁄si en la cookie estamo ya en nombre del valor
return CojerValorCookie(j) ⁄⁄devuleve el valor, que esta a partir de j

i = galleta.indexOf(" ", i) + 1 ⁄⁄pasa al siguiente
if (i == 0)
break ⁄⁄fin de la cookie
}
return null ⁄⁄no se encuentra el nombre del valor
}

function GuardarCookie (nombre, valor, caducidad) {
if(!caducidad)
caducidad = Caduca(0)

⁄⁄crea la cookie: incluye el nombre, la caducidad y la ruta donde esta guardada
⁄⁄cada valor esta separado por ; y un espacio
document.cookie = nombre + "=" + escape(valor) + "; expires=" + caducidad + "; path=⁄"
}

function Caduca(dias) {
var hoy = new Date() ⁄⁄coge la fecha actual
var msEnXDias = eval(dias) * 24 * 60 * 60 * 1000 ⁄⁄pasa los dias a mseg.

hoy.setTime(hoy.getTime() + msEnXDias) ⁄⁄fecha de caducidad: actual + caducidad
return (hoy.toGMTString())
}

function BorrarCookie(nombre) {
⁄⁄para borrar la cookie, se le pone una fecha del pasado mediante Caduca(-1)
document.cookie = nombre + "=; expires=" + Caduca(-1) + "; path=⁄"
}

function IntroducirCookie(nombre) {
⁄⁄establece la cookie: la caducidad es de 31 dias
var _31dias = Caduca(31) ⁄⁄crea la fecha de caducidad si 31 dias
if (nombre != "")
GuardarCookie("Datos", nombre, _31dias)
}

function MostrarMiCookie() {
Mostrar('Datos', document.formulario)
}

window.onload = MostrarMiCookie;
if (document.captureEvents) { ⁄⁄N4 requiere invocar la funcion captureEvents
document.captureEvents(Event.LOAD)
}


<body>

<form name="formulario">
<p>Nombre:<br> <input type="text" name="nombre" size="25" >
<p>Apellido 1:<br> <input type="text" name="apellido1" size="25" >
<p>Apellido 2:<br> <input type="text" name="apellido2" size="25" >
<p>Teléfono:<br> <input type="text" name="telefono" size="12">
<p>E-mail:<br> <input type="text" name="email" size="12">
<p>Web<br> <input type="text" name="web" size="25" >
<p><input type="reset" value="Limpiar" name="boton_borrar">
<p><input type="button" value="Almacenar" name="boton_guardar" onClick="JuntarPiezas( this.form )"><
<input type="button" value="Mostrar Agenda" name="boton_mostrar" onClick="Mostrar(nombre, formulario)">
<p><input type="button" value="Borrar Cookie" name="boton_borrarcookie" onClick="BorrarCookie('Datos')">
<⁄form>
</body>

Ante todo, gracias anticipadas a todos, ya que tengo la duda, de que si la cookie es para ir almacenando, porque me hace lo mismo que si lo paso a una variable y muestro con el document.write??

Etiquetas: cookies
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 13:28.