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 :

$.post s'éxecute plusieurs fois sur un event !


Sujet :

jQuery

  1. #1
    Membre du Club
    Inscrit en
    Avril 2002
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Avril 2002
    Messages : 86
    Points : 46
    Points
    46
    Par défaut $.post s'éxecute plusieurs fois sur un event !
    Bonjour,

    Sur une page html, j'ai un lien avec une classe formulaire. Si je clique sur ce lien, une classe est definie sous jquery afin d'executer un $.post vers le fichier formulaire.php dans lequel il y a une requete d'insertion dans une base de donnée mysql.

    Le probleme arrive lors d'un clique sur mon lien, le post s'execute x fois! Quand je vais regarder ma base de donnée, il y a plusieurs insertion, entre 2 et 7 fois.....

    Je ne vois pas du tout le probleme???

    Mon code jquery et le suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $(".formulaire").click(function(event){
      event.preventDefault();
        var page=$(this).attr("href");
       var auteur = $("#texte_commentaire1").val();
        var commentaire = $("#texte_commentaire2").val();
     
       $.post(page, { auteur:auteur, commentaire:commentaire });
     
    });

    Et mon code php:
    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
    <?php 
     
            @mysql_connect($host, $user,$pass ) or die("<big><big><span style='font-weight: bold; color: rgb(204, 0, 0);'>Impossible de se connecter au serveur (serveur HS ou mauvaise config du fichier connexion_bdd.php)<br></big>En gros va surfer sur un autre site!</span></big><br>");
            @mysql_select_db($bdd) or die("Erreur de connexion a la base de donnees");
     
               $date = date("Y-m-d H:i:s"); 
               list($date_temp, $heure) = explode(" ", $date);
           list($annee, $mois, $jour) = explode("-", $date_temp);
               list($heure, $minute, $seconde) = explode(":", $heure);      
     
            $req = "INSERT INTO fccoop13_commentaires (article,auteur,titre,commentaire,date) VALUES('$id','$auteur','$titre_article','$commentaire','$date')"; 
            $enregistrement=mysql_query($req); 
     
    mysql_close(); 
     
    ?>
    Merci pour vos aides,
    TouFou
    Ma version de Delphi: Delphi6 Perso Fr.
    Mon systeme d'exploitation: Windows XP
    Mon niveau de prog sous delphi: euh...ca commence a aller .

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Bonsoir.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $(".formulaire").click(function(event){
    	var page=$(this).attr("href");
    	var auteur = $("#texte_commentaire1").val();
    	var commentaire = $("#texte_commentaire2").val();
     
    	$.post(page, { auteur:auteur, commentaire:commentaire });
     
    	return false; // empêche l'action par défaut et la transmission de l'événement
    });

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Membre du Club
    Inscrit en
    Avril 2002
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Avril 2002
    Messages : 86
    Points : 46
    Points
    46
    Par défaut
    Bonjour,
    Merci d'avoir répondu, comme d'hab mais cette fois ci la solution proposée ne fonctionne pas...
    Cela semble faire moins souvent le defaut avec votre code, mais de temps en temps l'insertion dans la base de donnée se fait plusieurs fois pour un seul clic sur le lien.....

    Si vous avez une autre idée du problème, surtout je suis bloqué car je ne comprends pas du tout d'ou vient le probleme!?!
    Ma version de Delphi: Delphi6 Perso Fr.
    Mon systeme d'exploitation: Windows XP
    Mon niveau de prog sous delphi: euh...ca commence a aller .

  4. #4
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Bonsoir.

    Idée : La « form » de classe formulaire est unique ? Elle ne contient qu'un seul lien « href » ?

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  5. #5
    Membre du Club
    Inscrit en
    Avril 2002
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Avril 2002
    Messages : 86
    Points : 46
    Points
    46
    Par défaut
    Citation Envoyé par danielhagnoul Voir le message
    Bonsoir.

    Idée : La « form » de classe formulaire est unique ? Elle ne contient qu'un seul lien « href » ?
    Bonjour,
    Je ne suis pas sur de bien comprendre la question, mais l'idée me semble bonne

    Je m'explique après quelques investigations..

    Comme d'hab, je me suis dis qu'il y avait plus de chance que l'erreur vienne de moi que votre soluce, alors j'ai continué de chercher de mon coté comme je peux, et surtout avec mes connaissances....

    Bref, j'ai remplacé le code de ma classe par:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $(".formulaire").click(function(event){
      event.preventDefault();
    alert("test");
    });
    Et la surprise, lorsque je clique sur mon lien, l'alerte apparait deux fois!!!
    Donc le probleme ne vient pas du post, mais du fait que ma classe s'execute deux fois, mais je ne vois pas du tout pourquoi!!

    Pour appeler ma classe, j'ai ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     <div id="formulaire">
       <input type="text" id="texte_commentaire1" value="texte1"><br>
       <textarea rows="5" COLS="80" type="text" id="texte_commentaire2" value="commentaire"/></TEXTAREA><br>
       <div class="formulaire">Envoyer le commentaire</div>
     </div>

    Tout ce passe comme si la classe etait executée deux fois....

    Une idée?
    Ma version de Delphi: Delphi6 Perso Fr.
    Mon systeme d'exploitation: Windows XP
    Mon niveau de prog sous delphi: euh...ca commence a aller .

  6. #6
    Membre du Club
    Inscrit en
    Avril 2002
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Avril 2002
    Messages : 86
    Points : 46
    Points
    46
    Par défaut
    A priori, je vais me répondre tout seul.
    Suite à d'autres problemes avec Jquery, j'avais mis en haut de ma page contenant la div avec la classe formulaire, le rappelle de mon script contenant toutes mes fonctions et classe, et à priori, la classe est donc declarée deux fois et s'execute deux fois...
    Je sais pas si je suis très explicite.

    En fait mon site fonctionne avec une page principale appelée sommaire.html, ou dans le header je declare lquery.js et mon script.js qui contient toutes mes fonctions et classes.
    Depuis la page principale, via la fonction load, j'ouvre une autre page html dans une div de ma page principale. Dans la page appelée je rappelais mon script, et je pense que c'est ca qui faisais doublon au vu de mes premiers tests...
    Ma version de Delphi: Delphi6 Perso Fr.
    Mon systeme d'exploitation: Windows XP
    Mon niveau de prog sous delphi: euh...ca commence a aller .

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

Discussions similaires

  1. meme opérations plusieurs fois sur un fichier
    Par skouza dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 26/08/2010, 11h29
  2. la procédure s'éxecute plusieurs fois
    Par Vilukariok dans le forum Composants VCL
    Réponses: 18
    Dernier message: 14/04/2009, 10h39
  3. Réponses: 1
    Dernier message: 10/02/2009, 21h30
  4. Cliquer plusieurs fois sur Annuler
    Par Spani dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 14/08/2007, 11h06
  5. bouton entree plusieurs fois sur un form
    Par lili2704 dans le forum Struts 1
    Réponses: 5
    Dernier message: 29/06/2007, 14h19

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