IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

S'assurer de la validation ou non des modifications


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut S'assurer de la validation ou non des modifications
    J'aurais dû rajouter dans le titre : "autant que possible".

    Le contexte, dans une application web (php, sgbd, symfony, jquery) on veut pouvoir s'assurer avant de quitter la page du "form" que les données modifiées ont été sauvegardées ou volontairement abandonnées.

    Ce en ce prémunissant d'un maximum d'interventions intempestives de notre brave utilisateur. L'idéal serait qu'il n'ait pas la possibilité de quitter son écran sans s'être assuré que les données modifiées aient été sauvegardées ou volontairement abandonnées.

    Avez-vous déjà traité ce type de problème ?
    Avez-vous une solution ?

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    forcer une sauvegarde à chaque modification (avec ajax) ?
    onchange onblur ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    J'y ai pensé.

    Sauf qu'il est fort possible que l'utilisateur ne veuille pas modifier... il faut donc lui laisser la possibilité de modifier ou d'annuler la modification. Et faire un dialogue à chaque changement de champ n'est pas optimal.

    Après, j'ai bien envisager de garder en cache sur le serveur l'enregistrement modifié au coup par coup, en attendant la sauvegarde (ou l'annulation), mais cela n'empêche pas de sortir facilement de la fenêtre d'édition. Sans compter les problèmes potentiels liés à l'édition en multi-utilisateur.

    Je m'oriente vers un accès en consultation avec un passage volontaire sur l'écran d'édition, écran qui aura un aspect différent et n'aura pas d'accès au menu ni au changement d'enregistrement. Il sera moins aisé de changer "par erreur" et d'oublier les modifications. Il restera possible de fermer fenêtre et/ou onglet (sans oublier la bonne coupure de courant).

    Autre avantage, j'ai la possibilité de mieux gérer le verrouillage des enregistrements au niveau du serveur.

    Reste que si je pouvais faire un avertissement (et bloquer éventuellement) la fermeture de la fenêtre et/ou de l'onglet ce serait un plus appréciable. Mais je ne vois pas trop comment.

  4. #4
    Membre éclairé Avatar de Pymento
    Homme Profil pro
    Ingé. Info.
    Inscrit en
    Janvier 2008
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingé. Info.

    Informations forums :
    Inscription : Janvier 2008
    Messages : 366
    Par défaut
    En gros tu veux que ton site réagisse comme word par exemple, c'est ça ?

    @SpaceFrog j'imagine qu'il veut permettre l'annulation des modifications.

    Tu peux capter la fermeture d'un site, je ne l'ai jamais implémenté mais j'ai vu des site internet le faire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <body onunload="ferme();">
    il me semble. et la tu dois pouvoir faire un à la place d'un qui annonce que les modifications seront perdues.

    Pour t'aider, tu pourrai mettre en place une variable booléène globale. Qui passerai à true à la moindre modification (pour ça il faut mettre un onChange dans chacun des tes inputs qui passera la variable à true, et le bouton sauvegarder qui la passera à false).

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    c'est plutot unbeforeunload
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    @pymento: oui.

    J'avais de gros doutes sur la possibilité de pouvoir récupérer un événement sur la fermeture de la fenêtre, mais je n'ai pas pensé que si l'on ferme la fenêtre, on ferme le body...

    Vu que mon utilisateur bascule volontairement en édition, ne pourrais-je pas tout simplement interdire la fermeture de la fenêtre (du body) avec une bâte boite "fermeture impossible, vous devez sauvegarder ou annuler vos modifications au préalable" ?

    L'idée me parait plaisante !

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    window.onbeforeunload = function(){
        return "Les données n'ont pas été enregistrées, voulez-vous vraiment quitter cette page ?";
    }
    Mais la compatibilité entre navigateurs est incertaine (pas valable sur Opera par exemple).
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  8. #8
    Membre éclairé Avatar de Pymento
    Homme Profil pro
    Ingé. Info.
    Inscrit en
    Janvier 2008
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingé. Info.

    Informations forums :
    Inscription : Janvier 2008
    Messages : 366
    Par défaut
    Il ne me semble pas qu'on puisse interdire l'utilisateur de fermer, sinon les popups s'en donneraient à coeur joie ^^

    Avec ma technique tu retombe sur ce que tu recherche, une boite confirm "annuler les changement ?" s'il il met ok il annule et s'il met annuler il reste sur la page. Libre a lui de sauvegarder quand bon lui semblera.

  9. #9
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    ça ne bloque pas une fermeture sauvage
    a part faire des sauvegardes sur des onchange et onblur et conserver un log ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  10. #10
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par Pymento
    Il ne me semble pas qu'on puisse interdire l'utilisateur de fermer, sinon les popups s'en donneraient à coeur joie ^^
    Non, mais tu peux demander une confirmation de fermeture comme je l'ai proposé dans mon exemple.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SQL] Gestion des données par boutons afin de les valider ou non
    Par tozy88 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 07/03/2008, 12h09
  2. Pb validation HTML avec des sessions PHP
    Par fredylover dans le forum Langage
    Réponses: 12
    Dernier message: 07/05/2006, 12h15
  3. Flux RSS valide mais contient des erreurs
    Par maximenet dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 24/04/2006, 23h13
  4. [Struts Validator] probleme affichage des erreurs
    Par Morpheus2144 dans le forum Struts 1
    Réponses: 7
    Dernier message: 24/01/2006, 15h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo