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

jQuery Discussion :

Formulaire deux fois soumis jquery


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2013
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Février 2013
    Messages : 176
    Par défaut Formulaire deux fois soumis jquery
    Bonjour,

    J'ai un formulaire qui traite l'upload de fichiers en php et lorsque je souhaite afficher une miniature de mon image en jquery (que je ne connais pas) mon formulaire est soumis une seconde fois (données, image etc.)
    Je vous remercie de votre aide.

    Voici le jquery:

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    /////////////////////////////// POUR AFFICHER LA MINIATURE//////////////////////////////////////////////
                $(function () {
                    $('#frm').on('submit', function (e) {
                        e.preventDefault();// On empêche le navigateur de soumettre le formulaire
     
                        var $form = $(this);
                        var formdata = (window.FormData) ? new FormData($form[0]) : null;
                        var data = (formdata !== null) ? formdata : $form.serialize();
     
                        $.ajax({
                            url: $form.attr('action'),
                            type: $form.attr('method'),
                            contentType: false, // obligatoire pour de l'upload
                            processData: false, // obligatoire pour de l'upload
                            dataType: 'json', // selon le retour attendu
                            data: data,
                        });
                    });
     
                    // A change sélection de fichier
                    $('#frm').find('input[name="fichier"]').on('change', function (e) {
                        var files = $(this)[0].files;
     
                        if (files.length > 0) {
                            // On part du principe qu'il n'y qu'un seul fichier
                            // étant donné que l'on a pas renseigné l'attribut "multiple"
                            var file = files[0],
                                $image_preview = $('#image_preview');
     
                            // Ici on injecte les informations recoltées sur le fichier pour l'utilisateur
                            $image_preview.find('.thumbnail').removeClass('hidden');
                            $image_preview.find('img').attr('src', window.URL.createObjectURL(file));
                            $image_preview.find('.nom_photo').html("La photo se nomme <b>" + file.name + "</b>");
                            $image_preview.find('.poids').html(" Son poids est de <b>" + FileConvertSize(file.size) + '</b>');
                        }
                    });
     
                    // Bouton "Annuler"
                    $('#image_preview').find('button[type="button"]').on('click', function (e) {
                        e.preventDefault();
     
                        $('#frm').find('input[name="fichier"]').val('');
                        $('#image_preview').find('.thumbnail').addClass('hidden');
                    });
                });

  2. #2
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    où est le problème ?
    tu fais un code pour soumettre deux fois ton formulaire
    il est donc soumis deux fois.

    la méthode onsubmit de javascript s'exécute avant la soumission du formulaire
    une fois cette méthode terminé le formulaire est soumis
    et toi dans ta méthode onsubmit tu soumet en ajax ton formulaire.

    A+JYT

  3. #3
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2013
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Février 2013
    Messages : 176
    Par défaut Formulaire 2 fois soumis jquery
    Oui mais alors comment afficher la miniature sans soumettre une seconde fois mon formulaire ?

  4. #4
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    soit tu garde ton apel ajax et ta fonction onsubmit doit retourner false ce qui bloque l'envois natif du formulaire

    soit tu supprime l'appel ajax

    A+JYT

  5. #5
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2013
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Février 2013
    Messages : 176
    Par défaut Formulaire 2 fois soumis jquery
    Merci beaucoup, j'ai supprimé l'appel AJAX et ça fonctionne bien.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/01/2013, 10h16
  2. MSCRM 4.0 : utiliser un champ deux fois dans un formulaire
    Par irid dans le forum Microsoft Dynamics CRM
    Réponses: 4
    Dernier message: 09/06/2010, 10h39
  3. Firefox submit deux fois le formulaire
    Par adilou1981 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 17/02/2009, 09h44
  4. [A-03] Ouvrir deux fois le meme formulaire
    Par Gandalf24 dans le forum VBA Access
    Réponses: 2
    Dernier message: 09/12/2008, 12h30
  5. Réponses: 7
    Dernier message: 23/07/2006, 18h50

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