Bonjour à toutes et à tous
Est-il possible d'exporter des données Localstorage (en fait un panier d'achat) vers une adresse mail ?
Modérateur
Réponse : Oui à defaut de plus de détails.

A quel niveau de ton code rencontres tu un problème ?
Modifié par gcyrillus (13 Feb 2020 - 14:57)
slt

Comme le dit gcyrillus, c'est possible, comme n'importe quel variable en faite

Par contre, tu dois quand même la transférer dans une méthode PHP (donc soit form + js soit AJAX) car c'est en PHP que tu vas envoyer ton mail.
Tout à bord je tiens à signaler que je ne suis pas l'auteur du code...pas assez bon en javascript!

voici la partie du code d'origine app.js:

class Storage {
  static saveProducts(products) {
    localStorage.setItem("products", JSON.stringify(products));
  }
  static getProduct(id) {
    let products = JSON.parse(localStorage.getItem("products"));
    return products.find(product => product.id === id);
  }
  static saveCart(cart) {
    localStorage.setItem("cart", JSON.stringify(cart));
  }
  static getCart() {
    return localStorage.getItem("cart")
      ? JSON.parse(localStorage.getItem("cart"))
      : [];
  }
}


+

le code que j'ai trouvé et que je voudrais adapter pour récupérer les données sur mon adresse e-mail:

//essai mail localstorage
function sendLocalStorageByEmail(recipient) {
// create localstorage string
var output = "";
for(var key in localStorage) {
output += key+"\n";
output += localStorage Smiley key +"\n";
output += "\n";
output += ".bag-btn";
localStorage.href
}

// create temporary anchor to emulate mailto click in new tab
var anchor = document.createElement("a");
anchor.href = "mailto:"+recipient+"?subject=Local+Storage+Data&body+="+encodeURIComponent(output);
anchor.style.display = "none";
anchor.setAttribute("target","_blank");
anchor.appendChild(document.createTextNode(""));
document.body.appendChild(anchor);

if (anchor.click) {
return anchor.click();
}

// some browsers (chromium/linux) have trouble with anchor.click
var clickEv = document.createEvent("HTMLEvents");
clickEv.initEvent("click", true, true);
anchor.dispatchEvent(clickEv)
}
//fin essai

et la partie sur la page html:

<a href='javascript:sendLocalStorageByEmail(prompt("Please enter your e-mail address"))'>
  Send Email
</a>


avec le prompt le "client" affice son mail et récupère les données LocalStorage, mais je n'arrive pas à faire un cc pour mon propre email
Modérateur
Pour un copie cachée, il te faut ajouter la variable dans ton url mailto

<a href="mailto:truc@gmail.com?subject=bonjour&cc=machin@gmail.com">mail et copie cachée</a>


mais je ne suis pas certains que cela soit très efficace , c'est un usage obsolète.

Il vaut mieux en rester avec un formulaire classique(qui récupère les données) et faire l'envoi de ce mail à partir du serveur qui héberge le site.
est ce que l'on peut modifier la ligne:

anchor.href = "mailto:"+recipient+"?subject=Local+Storage+Data&body+="+encodeURIComponent(output);


afin d'y insérer mon adresse email?
Modérateur
oui , comme indiquer précédemment Smiley cligne
dePrada a écrit :
est ce que l'on peut modifier la ligne:
afin d'y insérer mon adresse email?


par exemple en ajoutant la variable cc avec ton adresse mail au lien mailto.
anchor.href = "mailto:"+recipient+"?subject=Local+Storage+Data&amp;body+="+encodeURIComponent(output)+"&cc=TonAdresse@TaMessagerie.fr";
merci çà marche pour la copie mail!

par contre je n'arrive plus à récupérer les données du local Storage;

il y a quelques jours, j'avais rajouté une ligne de code après:

 output += "\n";


soit:

 output += "cart";


mais plus rien (pourtant çà n'a rien à voir avec l'anchor.href....que tu m'as donné)