Vinnaren i pepparkakshustävlingen!
2018-11-12, 20:07
  #1
Medlem
Hej,

Jag har ett javascript som ser ut såhär:
Kod:
  $(\".productItem\").click(function (e) {
      e.preventDefault();

      var itemInfo = $(this.dataset)[0];
      itemInfo.qty = 1;
      var itemInCart = false;

      $.each(shopcart, function (index, value) {
        //console.log(index + '  ' + value.id);
        if(value.id == itemInfo.id) {
          value.qty = parseInt(value.qty) + parseInt(itemInfo.qty);
          itemInCart = true;
        }
      })

      if(!itemInCart) {
        shopcart.push(itemInfo);
      }

      sessionStorage[\"sc\"] = JSON.stringify(shopcart);
      var jsonstring = JSON.stringify(shopcart);

      $.ajax({
        url: '".URLROOT."/pages/checkout',
        type: 'post',
        data: 'jsonstring='+jsonstring,
        success: function (response) {
           console.log('yeey');
        },
        error: function(jqXHR, textStatus, errorThrown) {
           console.log(textStatus, errorThrown);
        }


    });

När en användare klickar på "Köp" så läggs varan till i varukorgen och en post skickas till ett PHP script som lagrar informationen i en session såhär:

Kod:
if($_POST!=false) {
  
$_SESSION['jsonpost']=$_POST['jsonstring'];


Problemet för mig är att jag skulle vilja ha tillbaka datan från PHP Sessionen till Javascript så att sidan kommer ihåg vad användaren har lagt i varukorgen så länge som webbläsaren är öppen. Stänger användaren fliken men inte webbläsaren för att sedan öppna en ny och går tillbaka till sidan så ska sidan komma ihåg vad användaren valde.

Jag har haft tanken på att lagra denna i en cookie men vet inte hur man gör för att lagra en cookie så länge som webbläsaren är igång och sedan döda cookien när webbläsaren stängs.
Citera
2018-11-12, 21:47
  #2
Moderator
Protons avatar
Citat:
Ursprungligen postat av Kakan1137
Hej,

Jag har ett javascript som ser ut såhär:
Kod:
  $(\".productItem\").click(function (e) {
      e.preventDefault();

      var itemInfo = $(this.dataset)[0];
      itemInfo.qty = 1;
      var itemInCart = false;

      $.each(shopcart, function (index, value) {
        //console.log(index + '  ' + value.id);
        if(value.id == itemInfo.id) {
          value.qty = parseInt(value.qty) + parseInt(itemInfo.qty);
          itemInCart = true;
        }
      })

      if(!itemInCart) {
        shopcart.push(itemInfo);
      }

      sessionStorage[\"sc\"] = JSON.stringify(shopcart);
      var jsonstring = JSON.stringify(shopcart);

      $.ajax({
        url: '".URLROOT."/pages/checkout',
        type: 'post',
        data: 'jsonstring='+jsonstring,
        success: function (response) {
           console.log('yeey');
        },
        error: function(jqXHR, textStatus, errorThrown) {
           console.log(textStatus, errorThrown);
        }


    });

När en användare klickar på "Köp" så läggs varan till i varukorgen och en post skickas till ett PHP script som lagrar informationen i en session såhär:

Kod:
if($_POST!=false) {
  
$_SESSION['jsonpost']=$_POST['jsonstring'];


Problemet för mig är att jag skulle vilja ha tillbaka datan från PHP Sessionen till Javascript så att sidan kommer ihåg vad användaren har lagt i varukorgen så länge som webbläsaren är öppen. Stänger användaren fliken men inte webbläsaren för att sedan öppna en ny och går tillbaka till sidan så ska sidan komma ihåg vad användaren valde.

Jag har haft tanken på att lagra denna i en cookie men vet inte hur man gör för att lagra en cookie så länge som webbläsaren är igång och sedan döda cookien när webbläsaren stängs.
https://stackoverflow.com/questions/...ith-javascript gör dom precis det du vill göra ser det ut som.
Citera
2018-11-14, 22:03
  #3
Medlem
Tackar! Det gjorde exakt det jag ville!
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback