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

Bibliothèques & Frameworks Discussion :

Soumission de formulaire [Prototype]


Sujet :

Bibliothèques & Frameworks

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technophile Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Par défaut Soumission de formulaire
    Bonjour,

    Je suis dans une archi full Ajax. Information soumis par le client => envoi de cela par XHR => traitement coté serveur initié par ce XHR => retour => affichage des message d'erreur dans la page

    bref, je suis sur un formulaire, comme vous le savez les formulaires ont un attribut action qui permet de définir l'URL du script serveur à executer. Mais voila, j'ai avant tout des traitements clients à faire. Je voudrais donc que la soumissions soit envoyé à mon php par mon javascript et rien d'autre.

    comment puis je faire ?

    PS : surtout que si la balise action n'est pas présente, la page HTML n'est pas valide

  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 : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

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

    Idéalement une application devrait pouvoir fonctionner sans javascript aussi.
    Donc l'attribut action devrait être fixé sur l'url d'une page serveur qui traite
    le formulaire en l'absence de javascript.

    Ensuite, si javascript est fonctionnel, tu interceptes l'évènement onsubmit du
    formulaire et là tu crée ta requête ajax. Quand tu interceptes un évènement
    de la sorte il faut empêcher son traitement par défaut.

    Tu peux maper l'évènement avec l'attribut onsubmit de la balise form mais
    cela se fait vieux. Tu as meilleur d'attacher un évenement avec un code du
    genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    addEvent(window, 'load', function() {
      var f = document.getElementById('id_du_form');
      addEvent(f, 'submit', handleFormSubmit);
    });
     
    function addEvent(e, evType, fn) {
      if(e.addEventListener) {
        e.addEventListener(evType, fn, false); // sans capture
        return true;
      } else if (e.attachEvent) {
        var r = e.attachEvent("on"+evType, fn);
        return r;
      } else { return false; }
    }
     
    function handleFormSubmit(event) {
      var event = event || window.event;
      if (event.preventDefault) { // Standard
        event.preventDefault();
      } else { // Pour IE
        event.returnValue = false;
      }
      // ton code Ajax ici
    }
    Ou alors, utiliser un Framework comme "prototype" qui simplifie beaucoup
    cette problématique.

  3. #3
    Membre éprouvé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technophile Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Par défaut
    j'utilise prototype

    mais je ne suis pas un professionnel

    donc je ne vois pas ce que tu veux dire

  4. #4
    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 : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Par défaut
    Ne pas être un pro n'est pas une excuse en sois :-)

    Avec prototype tout est tellement plus simple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Event.observe(window, 'load', function() {
      Event.observe('id_de_ton_form', 'submit', handleFormSubmit);
    });
     
    function handleFormSubmit(event) {
      Event.stop(event);
      // ton code Ajax ici
    }

  5. #5
    Membre éprouvé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technophile Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Par défaut
    oki merci

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

Discussions similaires

  1. Soumission de formulaire - insérer dans l'URL
    Par TSalm dans le forum Struts 1
    Réponses: 6
    Dernier message: 06/03/2007, 17h51
  2. soumission de formulaire
    Par Grodan dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 05/01/2007, 16h10
  3. soumission de formulaire : problème ..
    Par questionneuse dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 05/06/2006, 19h14
  4. Confirm sur une soumission de formulaire
    Par ephemere2 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 21/04/2006, 08h59
  5. double click pour soumission de formulaires
    Par pram dans le forum XMLRAD
    Réponses: 2
    Dernier message: 16/11/2005, 12h32

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