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 :

Fonction Ajax sur clique qui s'exécute plusieurs fois


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Par défaut Fonction Ajax sur clique qui s'exécute plusieurs fois
    Bonjour,

    Je n'arrive pas à comprendre pourquoi cette fonction "insertionCde" s'exécute une ou plusieurs fois sur un clique de bouton de façon aléatoire.

    Je m'explique:
    Parfois la fonction insère bien une seule commande, et à partir de 3 articles (ou plus) la probabilité d'avoir plusieurs fois la même commande augmente et je me retrouve avec 2 ou 3 fois la même commande.

    Le clique peut-il se jouer 2 fois ? (à mon insu )

    Voici ce qui est chargé dans le DOM :

    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
    $("document").ready(function()  {
     
    affMasqBtn(); // Affiche ou masque le bouton "Valider la commande" au chargement de la page.
     
    $("#validerCde").click(function() {
      insertionCde(); // Insertion commande.
    });
     
    annulerCde(); // Annulation d'une commande au clique sur l'icone Annuler (croix rouge).
     
    visuCde();
     
    $('.input_cmd').keyup(function() {
       affMasqBtn(); // Si une donnée est saisie dans quantité on affiche le bouton "Valider la commande".
    })
     
    controleQte();
     
    });
    La fonction qui insère les commandes :
    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
    function insertionCde(){
            var date = $("#date").val();
            var commentaire = $("#commentaire").val();
                if(date!="") {
                    if(confirm("Veuillez confirmer la création de la commande")) {
                        var str = $(".input_cmd").serialize(); // serialize les données.                     
                        $.ajax({
                            type: "GET",
                            url: "nouvelle_commande.php", // Insertion de la commande
                            data: { refqte:str,d:date,c:commentaire },
                            success: function(data){
                                if(data!="")
                                {
                                    chargerData(); // Rechargement de la page avec un submit.
                                }
                                else
                                {
                                    $('#cdeOk').html("une erreur est survenue !");
                                }
                            }
                        });
                    } 
                    else {
                                    return false;
                    }
                }
                else {
                    alert("Veuillez saisir une date de livraison");
                    $( "#date" ).datepicker( "show" ); // On affiche le calendrier.
                }
    }

  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 659
    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 659
    Billets dans le blog
    1
    Par défaut
    c'est un bouton de formulaire ?
    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
    Membre éclairé Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Par défaut
    c'est un bouton de formulaire ?
    Oui.
    type="button"

  4. #4
    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 659
    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 659
    Billets dans le blog
    1
    Par défaut
    et chargerData(); fait quoi ?
    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 !

  5. #5
    Membre éclairé Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Par défaut
    et chargerData(); fait quoi ?
    Juste recharger la page comme avec F5.


  6. #6
    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 659
    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 659
    Billets dans le blog
    1
    Par défaut
    et l'action du form c'est quoi ?
    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 !

  7. #7
    Membre chevronné Avatar de nadox
    Homme Profil pro
    Développeur
    Inscrit en
    Février 2010
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 360
    Par défaut
    Bonjour,
    Je suis peut-être un peu hors-sujet, mais quel est l'intérêt d'enregistrer les données avec un requête ajax si à chaque appel on envoie le formulaire ?
    Ne suffirait-il pas d'enregistrer les données sur le serveur avant rechargement ?

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 25/04/2013, 14h32
  2. Réponses: 1
    Dernier message: 13/03/2013, 14h17
  3. Fonction s'exécute plusieurs fois
    Par bigbob195 dans le forum jQuery
    Réponses: 4
    Dernier message: 13/12/2012, 23h09
  4. [Débutant] PC qui rame, fonctions exécutées plusieurs fois
    Par KaloOopS dans le forum C#
    Réponses: 7
    Dernier message: 14/09/2012, 21h14
  5. Réponses: 4
    Dernier message: 24/07/2011, 13h42

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