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 :

Pourquoi le 1er clique renvoi toujours false ? [AJAX]


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 519
    Par défaut Pourquoi le 1er clique renvoi toujours false ?
    bonsoir,

    depuis quelque temps j'essai de résoudre un petit problème avec la fonction $.ajax(), voilà mon code :

    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
    47
    48
    49
    50
    51
     
    var Valide=false,id;
    function Initialiser_formulaire(lerel) {
        var titre = "", imag = "", date = "", devise = "", ordrecat = "", envoimar = "", activecat = "", 
        grpreperp = "", ladonner = { id: parseInt(lerel) };
        $.ajax({
            type: "POST",
            url: "/Categorie/Charger_formulaire?id="+lerel,
            //data: JSON.stringify(ladonner),
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            cache: false,
            beforeSend: function () { ladonner.id = lerel; }
        }).success(function (CHmsg) {
            if (CHmsg) {
                for (var i = 0; i < CHmsg.length; i++) {
                    Valide = true;
                    titre = CHmsg[i].Titre;
                    imag = CHmsg[i].Image;
                    date = CHmsg[i].Date;
                    devise = CHmsg[i].devis;
                    ordrecat = CHmsg[i].order_cat;
     
                }
                if (Valide) {
                    $("#txtTitreModif").val(titre);
                    $("#txtDate").val(date);
                    $("#imgmdf").attr("src", "../photos/" + imag);
                    $("#txtdevmod").val(devise);
                    $("#txtOrdreCatmod").val(ordrecat);
                }
            }
        });    // fin ajax
        return Valide;
    }
    $(function(){
     
           $.fn.Affiche=function(){
           id=$(this).attr("id");
               if(Initialiser_formulaire(id))
                 {
                   alert("Existe :"+id);
                 }
              else
                {
                   alert("N existe pas :"+id);
                }
           }
     
           $("#Tblaff").on("click", "tr.cont", $.fn.Affiche);
    });
    le premier clique me renvoi toujours l'alerte qui est dans le bloc ELSE malgré que le ID est correcte.
    pourquoi dois-je cliquer 2 fois alors ??

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par défaut
    Bonjour,
    voir des éléments de réponse dans la discussion http://www.developpez.net/forums/d15...rn-d-fonction/.

    D'une façon plus général ce petit billet de Bovino : Un classique AJAX : utiliser les données au bon moment !.

  3. #3
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 519
    Par défaut
    bonjour,
    Merci NoSmoking pour votre aide, d'après ce que j'ai compris depuis ces liens que vous m'avez donné c'est que Javascript n'attends pas la réponse serveur pour continuer l'exécution.
    1-suis-je obliger d'ajouter le paramètre async:false dans la fonction $.ajax?
    2-dois-je mettre une fonction qui traite le résultat serveur dans le success de $.ajax?

  4. #4
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 519
    Par défaut
    en remplaçant if (CHmsg) par if(CHmsg.length>0) a résolu le problème.

    vu que je reçois un Array du serveur, j'ai fais la vérification en utilisant sa longeur.

  5. #5
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par défaut
    1-suis-je obliger d'ajouter le paramètre async:false dans la fonction $.ajax?
    Ajax pour asynchrone, alors autant rester dans cet esprit.

    2-dois-je mettre une fonction qui traite le résultat serveur dans le success de $.ajax?
    c'est en général ce que l'on fait.

    en remplaçant if (CHmsg) par if(CHmsg.length>0) a résolu le problème.
    j'ai du mal à voir la solution mise en oeuvre !?!

  6. #6
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 519
    Par défaut
    Citation Envoyé par NoSmoking
    j'ai du mal à voir la solution mise en oeuvre !?!
    je veux dire que j'ai crée une fonction qui traite le CHmsg dans le success, j'ai changé la condition if(CHmsg) par if(CHmsg.length>0) et ça a fonctionné.

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

Discussions similaires

  1. AIR Diadraw isMailComposerAvailable renvoie toujours false
    Par VulpesZerda dans le forum ActionScript 3
    Réponses: 1
    Dernier message: 31/10/2014, 11h55
  2. Réponses: 3
    Dernier message: 05/08/2014, 15h00
  3. Regex qui renvoie toujours false
    Par renaud26 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 16/09/2011, 11h19
  4. If qui renvoie toujours false
    Par einsteineuzzz dans le forum Général JavaScript
    Réponses: 19
    Dernier message: 14/04/2010, 17h17
  5. FileExists renvoie toujours False
    Par aldapal dans le forum VBScript
    Réponses: 3
    Dernier message: 28/03/2008, 21h50

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