Foros del Web » Programando para Internet » Jquery »

Crear cookies localStorage dinamicamente

Estas en el tema de Crear cookies localStorage dinamicamente en el foro de Jquery en Foros del Web. Hola gente, buenos días. Os cuento un poco de que va la historia. Tengo una web donde en un apartado tengo un select y un ...
  #1 (permalink)  
Antiguo 06/10/2015, 03:23
 
Fecha de Ingreso: noviembre-2010
Ubicación: LEÓN (ESPAÑA)
Mensajes: 30
Antigüedad: 14 años, 1 mes
Puntos: 0
Crear cookies localStorage dinamicamente

Hola gente, buenos días.

Os cuento un poco de que va la historia.
Tengo una web donde en un apartado tengo un select y un input y un submit.
La cuestión es que al darle al botón me genere una cookie en localStorage para después trabar con ella.
Hasta aquí todo correcto.

Ahora bien, la web tiene un carrito y cada cookie que genero corresponde a un elemento de compra.

La cosa es que si la gente edita ese mismo producto tengo que modificar la cookie (cosa que todavía no me he puesto a hacer porque antes quería solucionar el siguiente problema), pero si la gente selecciona otra variante del select generaría un producto nuevo (eso ya esta resuelto) con su nueva cookie correspondiente(este es el problema).

Aquí os dejo el código que estoy usando:


Código:
//// compruebo que la cookie 'area' esta vacia

area = JSON.parse(localStorage.getItem('area'));

               /// si esta vacia es un producto nuevo
                if (area == 'undefined undefined') {

                    counter = '1';
                    console.log(counter); 
                    var ancho = $('.input-ancho').val();      /// el campo input
                    var area = $('#variant-Area-adhesivos-imanes option:selected').html();   ///el select
                    area = counter+' '+area+' '+ancho;
                    localStorage.setItem('area', JSON.stringify(area));
                    counter++;
                    console.log(counter;); 

/// si no esta vacia es un producto nuevo

                }else{

                    counter = '2';
                    var ancho = $('.input-ancho').val();
                    var area = $('#variant-Area-adhesivos-imanes option:selected').html();
                    area = counter+' '+area+' '+ancho;
                    localStorage.setItem('area'+counter, JSON.stringify(area));
                    counter++;
                    console.log(counter);

                };
Estoy usando un contador para referenciar la cookie con una linea del carrito y poder luego trabajar con dicha cookie, pero ya se que esta mal(era a que lo tuvierais en cuenta). Pensé en trabajalo con php por ejemplo así:

Código:
area = JSON.parse(localStorage.getItem('area'));

               
                
                <?$counter = '1';?>
                if (area == 'undefined undefined') {

                    //counter = '1';
                    console.log(<? echo $counter;?>); 
                    var ancho = $('.input-ancho').val();
                    var area = $('#variant-Area-adhesivos-imanes option:selected').html();
                    area = <?$counter?>+' '+area+' '+ancho;
                    localStorage.setItem('area', JSON.stringify(area));
                    <?$counter++;?>
                    console.log(<? echo $counter;?>); 

                }else{

                //    counter = '2';
                    var ancho = $('.input-ancho').val();
                    var area = $('#variant-Area-adhesivos-imanes option:selected').html();
                    area = <?$counter?>+' '+area+' '+ancho;
                    localStorage.setItem('area'+<?$counter?>, JSON.stringify(area));
                    <?$counter++;?>
                    console.log(<? echo $counter;?>);

                };
El codigo anterior se lo estoy asignando a un evento click del submit si quereis os lo pongo pero no tiene mas.

Espero haberme explicado sino preguntarme.

¿Podéis darme algún consejo?

Gracias de antemano!!

Última edición por azanfer; 06/10/2015 a las 04:00 Razón: Añadir explicación del problema

Etiquetas: cookies, dinamicamente, localstorage
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 22:21.