Sauvegarde automatique de formulaire
Bonjour à tous,
Je voudrais enregistrer automatiquement un formulaire en quittant ma page.
Je ne crois pas ou je n'ai pas trouvé d’événement qui détecte le déchargement de la page avant le chargement de la suivante.
En alternative, j'ai trouvé des infos pour l'enregistrement de chaque champ en quittant le champ (blur) mais ces techniques utilisent Ajax. Là se pose deux problèmes: Je ne connais pas Ajax et d'après ce que j'ai lu, Ajax permet d'enregistrer en XML mais moi, je voudrais enregistrer directement en base de données.
Suis-je assez clair?
Envoi auto de formulaire: déboguer
Bonjour,
J'ai aussi repris complètement un cours et travaillé les exemples de MDN. J'ai lu la FAQ de ce site, et notamment la rubrique sur l'asynchrone sans tout comprendre (En passant, je regrette que dans cette FAQ, les dates de mise à jour ne soit pas reportées sur chaque article).
Malheureusement, je n'arrive toujours pas à comprendre pourquoi mon code ne fonctionne pas, ce qui est est d'ailleurs rendu difficile par l'impossibilité d'utiliser la console ou la fonction alert.
Mon application comprend une page mère avec plusieurs onglets comportant chacun un ou plusieurs formulaires identiques mais avec des données différentes.
Prenons déjà le cas le plus simple avec un formulaire par onglet. Le clic sur un onglet (lien) recharge la page avec le formulaire correspondant à cet onglet.
Mon but est de soumettre le formulaire lorsque je clique sur un autre onglet. Dans ce cas, l'url (targetFile dans mon code) correspond au fichier php de traitement du formulaire. Le problème est que comme je quitte la page et que la page appelée ne contient que du code php, je ne vois rien et rien ne se passe.
J'ai essayé le code donné par Watilin dans le lien ci-dessus et le code ci-dessous mais je ne m'en sors pas:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| "use strict";
(function()
{
window.addEventListener('unload', function()
{
const myForm = document.querySelector('form')
, myData = new FormData(myForm)
, req = new XMLHttpRequest()
, output = document.querySelector('div') // à préciser
;
req.open('POST', targetFile);
req.addEventListener('load', function(e)
{
if (req.status != 200)
{
output.innerHTML = "Problème !!";
}
}, false );
req.send(myData);
}, false );
}) (); |