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 :

Un click et action à répétition ?


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Amateur
    Inscrit en
    Octobre 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Amateur
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2011
    Messages : 37
    Par défaut Un click et action à répétition ?
    Bonjour,

    Je m'explique, je suis sur un bon de commande, l'utilisateur sélectionne le produit dans un <select>, rempli la quantité et cliques sur ajouter(C'est là que je déclenche AJAX). Jusque là aucuns soucis, tout se fait correctement, sauf que lorsque je met 1 en quantité, il m'enregistre aléatoirement une quantité différente (j'ai une fonction qui ajoute si l'article est déjà présent dans la commande). Je dis aléatoire car parfois c'est 81, ensuite 174, ... On dirait que l'action se répète en boucle jusqu'à ce que la transaction AJAX soit complète.

    Je ne sais pas comment faire pour empêcher ce phénomène, car au niveau du php, j'ai repris ma fonction de base qui fonctionne sans aucun soucis ( je modernise une page bon de commande)

    Merci d'avance pour votre aide.

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    L'actualité récente n'étant pas très favorable à ceux qui sont contraints de torturer des chats pour deviner du code, je me contenterais d'une réponse simple (mais qui risque néanmoins de ne pas te satisfaire) : corrige ton code...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre averti
    Homme Profil pro
    Amateur
    Inscrit en
    Octobre 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Amateur
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2011
    Messages : 37
    Par défaut
    Bovino,

    Merci d'avoir répondu, et ...vraiment désolé de ne pas avoir mis de code. Je l'ai relu plusieurs fois mais je ne vois pas ce qui cause cet effet. Donc voici la partie JS :
    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
    $(function(){
        $(document).ready(function(){
            $('#commande').load('fctcmd/showorder.php');
        })
        $('.gr').click(function(){   /*Sélecttion du groupe qui doit être affiché dans la liste déroulante*/
            var groupe = $(this).text();
            $('#products').load('fctcmd/getgroup.php',{group:groupe});
        })
        /*Supprimer un article*/
        $('.delArticle').click(function(){
            $('#loading').show();
            var ref = $(this).attr('value');
            $.ajax({
                type:'POST',
                url: 'fctcmd/editproduct.php',
                data: 'ref='+ref,
                success:function(){
                    $('#loading').hide();
                    $('#commande').empty();
                    $('#commande').load('fctcmd/showorder.php');
                }
            })
        })
     
        /*Ajouter un article de la gamme*/
        $('#gammeAjoute').click(function(){
            $('#commande').hide();
            $('#loading').show();
            var quantite = $('#gammeQua').val();
            var reference = $('#art').val();
            $.ajax({
                type:'POST',
                url: 'fctcmd/addproduct.php',
                data: 'qua='+quantite+'&ref='+reference,
                success:function(){
                    $('#commande').show();
                    $('#loading').hide();
                    $('#commande').empty();
                    $('#commande').load('fctcmd/showorder.php');
                }
     
            })
        })
     
    })
    et voici le PHP pour ajouter un produit :
    Code php : 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
    include '../condb.php';
    include '../verif.php';
    $qua = $_POST['qua'];
    $code = $_SESSION['code'];
    $ref = $_POST['ref'];
    /*on récupère les informations*/
    $info = mysql_query("SELECT * FROM articles WHERE Reference='".$ref."'");
    $donnees = mysql_fetch_array($info);
    $desi = $donnees['Designation'];
    $prix = $donnees['Prix'];
    $checkRequest = mysql_query("SELECT * FROM commandes WHERE Reference='".$ref."' AND Code='".$code."'");
    $check=mysql_fetch_array($checkRequest);
    /*on vérifie si l'article est déjà dans la commande*/
    if($check['Reference']==$ref){
        /*si il est déjà dans la commande alors on modifie la quantité et le prix*/
        $actualQty = $check['Quantite'];
        $actualPrice = $check['Prix'];
        $qua = $qua + $actualQty;
        $prix = $prix * $qua;
        mysql_query("UPDATE commandes SET Quantite='".$qua."',Prix='".$prix."' WHERE Reference='".$ref."' AND Code='".$code."'");
    }
    else{
        /*Si l'article n'est pas dans la commande alors*/
        /*On ajoute l'article dans la base de données*/
        mysql_query("INSERT INTO commandes VALUES('".$code."','','".$ref."','".$desi."','".$qua."','".$prix."')") or die("IMPOSSIBLE D'ENTRER LES DONNEES");
    }

    Voilà, merci d'avance pour votre aide, je ne suis pas un crac et donc parfois je loupe des petits détails (parfois essentiels)

  4. #4
    Membre averti
    Homme Profil pro
    Amateur
    Inscrit en
    Octobre 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Amateur
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2011
    Messages : 37
    Par défaut
    Re Bonjour,

    Je pense avoir résolu le problème en désactivant mon bouton au début de la fonction click, ça a l'air de fonctionner correctement.

    Merci tout de même de m'avoir répondu.
    Toutefois, si vous remarquez quand même quelque chose qui cloche dans le code, je suis ouvert au critiques, ça me permettra de me perfectionner

  5. #5
    Membre averti
    Homme Profil pro
    Amateur
    Inscrit en
    Octobre 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Amateur
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2011
    Messages : 37
    Par défaut
    Désolé, je reviens vers vous parce que je n'arrive toujours pas à régler le problème..
    J'ai retourné ça dans tous les sens et je ne vois pas ce qui provoque mon problème.

    merci d'avance

Discussions similaires

  1. Réponses: 2
    Dernier message: 12/03/2007, 14h48
  2. Réponses: 2
    Dernier message: 18/01/2007, 17h14
  3. Envoi d'une action après click dans un select
    Par sutailga dans le forum Struts 1
    Réponses: 2
    Dernier message: 08/06/2006, 20h29
  4. Actions liés à un ou deux clicks souris
    Par ceres02 dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 04/04/2006, 14h54
  5. [jTabbedPane] action apres click sur onglet
    Par tony_big_guy dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 01/12/2005, 23h29

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