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 :

Validation de suppression et de redirection


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 178
    Points : 122
    Points
    122
    Par défaut Validation de suppression et de redirection
    Bonjour à tous,

    J'ai un problème assez simple je pense, mais comme je suis une quiche, je bloque ^^

    En fait, j'ai une liste de société et à côté un lien hypertexte qui me rappele la même page en passant des paramètres en GET pour la suppression :
    Par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="listSociete.php?action=del&id=5" onClick="javascript: validSuppr()">Supprimer</a>
    Comme vous avez pu le constater, je fais un appel à la fonction validSuppr qui doit demander une confirmation à l'utilisateur de valider ce choix :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function validSuppr() {
    				if (!confirm("Voulez-vous supprimer la Soci\351t\351 ?"))
    					window.location.replace("listSociete.php");
    			}
    En fait, j'aimerai que si la suppression est validée, on suive le lien normalement (avec les paramètres à passer) et sinon, on retourne sur la page courante (donc sans paramètres, car je fais un appel sur la même page).

    Ca ne doit pas être très compliqué mais ça va faire 1h que tourne autour du pot et j'en peux plus

    Merci d'avance

  2. #2
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Salut,

    Il suffit de retourner false sur le onclick pour stopper le traitement du
    lien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <a href="listSociete.php?action=del&id=5" onClick="return  validSuppr()">Supprimer</a>
     
    function validSuppr() {
      return confirm("Voulez-vous supprimer ?");
    }
    Petite remarque, selon les principes REST la méthode GET ne devrait
    pas être utilisée pour des requêtes qui font des modifications dans la
    db. Imagine que google visite ton application, ou que tu désire copier son
    contenu pour une présentation sur CD via un aspirateur de site, toute les
    données de ta DB seront supprimées !

  3. #3
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    j'aurais plutot fais ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    function validSuppr(valeur) {
    				if (confirm("Voulez-vous supprimer la Soci\351t\351 ?"))
    {
    document.getElementById('champsCache').value=valeur;//mais bon vaut mieux utiliser 2 champs , un pour l'action et un pour l'id
    					window.forms[0].submit();
    }
    else{
    window.forms[0].submit();
    }
    			}
    et l'appel coté html :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="#" onClick="validSuppr('action=del&id=5')">Supprimer</a>
    voila , un truc dans ce style la , en méthode POST

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 178
    Points : 122
    Points
    122
    Par défaut
    Merci...

    Je me suis servi de la solution de Marcha.. je tournais autour, arg

    Par contre, si j'ai bien compris, la méthode REST me dit que je dois donc faire des appels à des pages différentes pour tous les traitements dans ma BD, sans jamais passer les paramètres en URL...
    Pourtant, Wikipédia dit :
    "HTTP fournit toutes les opérations nécessaires (GET, POST, PUT et DELETE, essentiellement) ;"
    Et s'il s'agit d'un outil admin, Google par exemple ne pourra pas tester les pages?


    Je sais que je dévie un peu du sujet, mais la réponse de Marcha me fait bien réflechir!!!

    ET merci le_chomeur aussi ^^

  5. #5
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Principalement quand tu fais du php, les méthode PUT et DELETE ne
    sont pas gérée par l'hébergeur. Donc respecter tous les principes REST
    n'est pas faisable.

    Par contre tu devrais utiliser GET pour toutes les requêtes de consultation
    (qui ne modifient pas la db) et dont l'url qualifie le contenu. Et POST pour
    tout le reste.

    En effet google ne pourra pas rentrer dans une application web protégée
    par un mot de passe. Mais c'est une bonne habitude à prendre malgré tout
    car il est fort probable que tu recopie une partie du code d'une de tes
    application web privée pour faire un jours une application publique :-)

    Je vais t'avouer honteusement que ça m'est arrivé pour un agenda, et quand
    google l'a visité, tous mes rendez-vous ont été effacés :-)

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 178
    Points : 122
    Points
    122
    Par défaut
    Arg, la bonne nouvelle pour ton agenda!

    En tout cas, merci, je vais donc de ce pas modifier mes scripts et me mettre cette (bonne) idée dans le crane!

    Merci pour tout donc

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

Discussions similaires

  1. Réponses: 13
    Dernier message: 06/05/2009, 21h39
  2. validation de suppression
    Par Kerrisson dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 19/01/2008, 19h13
  3. Redirection après validation d'un captcha
    Par GarGamel55 dans le forum Langage
    Réponses: 4
    Dernier message: 08/09/2006, 19h42
  4. Réponses: 1
    Dernier message: 20/07/2006, 17h46

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