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

AJAX Discussion :

[AJAX] ["simple"] enregistrer puis recharger la page ?


Sujet :

AJAX

  1. #1
    Membre régulier Avatar de Merfolk
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    170
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 170
    Points : 113
    Points
    113
    Par défaut [AJAX] ["simple"] enregistrer puis recharger la page ?
    Hello,

    un des buts d'ajax c'est de ne pas recharger la page, mais je me rends compte que ça me gêne pour ce que je veux faire :/

    On a fait de l'enregistrement de formulaires en ajax.

    une page "editer.php?id=X"
    avec,

    au lieu d'un form submit qui arrive sur un enregistrer.php qui retourne sur editer.php
    <->
    lors de la validation du form, ça appelle en ajax une page, qui enregistre et retourne "ok", "erreur mail" et affiche le résultat dans un div en vert ou en rouge

    ça fonctionne, c'est très sympa etc.
    Sauf que : souvent la cinématique de création c'est ça
    "editer.php" -> enregitrer.php -> editer.php?<id=inserted_id>

    comment faire ce fameux
    "après la création redirect vers page edit = id inseré"

    si je ne le fais j'arrive dans une situation incohérente ou le formulaire crois qu'il est en "mode création" alors qu'il est en "mode edition", l'id a été inséré etc..il suffit de re-submiter pour avoir une erreur, ou alors d'autres liens d'édition ne sont pas encore actifs etc.

    je suis en train d'écrire une demi usine à gaz pour faire ça

    bref du coup j'ai 5* plus de code qu'avant
    qqn aurait une solution basique pour gérer ça avant que je convertisse 5 autres forms ^^


    merci

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    Citation Envoyé par Merfolk Voir le message
    je suis en train d'écrire une demi usine à gaz pour faire ça

    bref du coup j'ai 5* plus de code qu'avant
    qqn aurait une solution basique pour gérer ça avant que je convertisse 5 autres forms ^^
    Oui : n'utiliser Ajax que lorsqu'il est nécessaire

    En l'occurrence, l'enchaînement que tu décris serait beaucoup plus simple (dans la logique, à coder, à maintenir et à utiliser) en passant par une soumission de formulaire tout à fait standard.

    Trop d'Ajax tue l'Ajax

    A+

  3. #3
    Membre régulier Avatar de Merfolk
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    170
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 170
    Points : 113
    Points
    113
    Par défaut
    je suis 100% d'accord avec toi et je préfère les forms sans ajax
    par contre je n'ai pas le choix

    il faut qu'on fasse comme ça c'est "web2" "c'est classe"
    (ça a aussi des avantages : ça ne perd pas la saisie utilisateur en cas d'erreur, on peut mettre des champs en rouges etc. etc.)

    nb : pleins de sites fonctionnent comme ça d'ailleurs
    ça devient limite un nouveau standard


    donc je pense que ça doit être un cas connu et qu'il y a une bonne façon de faire

    je pensais à
    si ok
    -> ajax retoune "OK | <id>'
    et dans le js
    -> si retourAjax commence par 'OK|' -> substr id -> window.location = edit?id=<id>

    ça devrait marcher, mais il y a peut être mieux ?

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par Merfolk Voir le message
    nb : pleins de sites fonctionnent comme ça d'ailleurs
    ça devient limite un nouveau standard
    Vue l'absence de logique, dans certains cas, je dirais plutôt une mode (pour l'instant)
    Citation Envoyé par Merfolk Voir le message
    je pensais à
    si ok
    -> ajax retoune "OK | <id>'
    et dans le js
    -> si retourAjax commence par 'OK|' -> substr id -> window.location = edit?id=<id>
    Oui, par exemple.
    Et pour gérer les incohérences de navigation dont tu parlais
    comment faire ce fameux
    "après la création redirect vers page edit = id inseré"
    utilise des variables sessions ...

    A+

Discussions similaires

  1. [AJAX] Transmettre un formulaire sans rechargement de page
    Par micka39 dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 21/11/2007, 12h20
  2. [AJAX] Comment envoyer au serveur une seul info sans recharger la page
    Par Ekimasu dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 15/11/2007, 12h10
  3. [AJAX] Remplir un formulaire sans recharger la page
    Par houdazcom dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 06/11/2007, 12h37
  4. Réponses: 4
    Dernier message: 06/11/2007, 11h44
  5. [AJAX] Recharger un menu deroulant php sans recharger la page
    Par ns_deux dans le forum Général JavaScript
    Réponses: 25
    Dernier message: 22/07/2006, 15h59

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