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 :

Code non lu s'il n'y a pas d'alert


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 138
    Par défaut Code non lu s'il n'y a pas d'alert
    Bonjour,

    j'ai un formulaire qui est envoyer par Ajax, et s'il marche, la fonction ci-dessous est appellée pour vider le formulaire avec JQUERY

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function ajaxValidationCallback<?php echo $nomSportSaison;?>(status, form, json, options){
    	if (status === true) {
    		alert('l\'ajout a bien été fait');
    		$('#<?php echo $nomSportSaison;?>_liste').dataTable().fnAddData( [json['nomRestriction']] );
     		$(':input','#<?php echo $nomSportSaison; ?>') .not(':button, :submit, :reset, :hidden, .radio, :radio, :checkbox') .val(''); 
    		}
    }
    Comme cela ca marche très bien, mais à partir du moment ou j'enlève la ligne de l'alert(), plus rien ne marche. On dirait que le code n'est plus lu. Alors que tout fonctionne !

    Pourquoi avec l'alert ca marche ? Qu'est-ce que je dois faire pour que ca marche sans ?

    MERCI !

  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
    elle est lancée quand ?
    je devine, dasn le callback d'un ajax ...
    ton ajax est synchrone ou pas ?
    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 confirmé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 138
    Par défaut
    Elle est lancée au moment ou j'envoie le formulaire à l'aide de la fonction suivante (elle utilise le plugin JQuery validationEngine) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $(document).ready(function() {
    	$("#<?php echo $nomSportSaison; ?>").validationEngine('attach',{
    					ajaxFormValidation: true,
                        onAjaxFormComplete: ajaxValidationCallback<?php echo $nomSportSaison;?>,
        } );
    } );
    qu'est-ce que tu entends par synchrone ou non ? le traitement ne se voit pas du côté client. Tout est fait en background.

  4. #4
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Un appel Ajax est soit en mode synchrone, soit en mode asynchrone.

    Dans le premier cas, le script va attendre la fin de l'appel Ajax pour continuer sa séquence d'instructions.
    Dans le second cas, le script lance l'appel et n'attend pas la fin de l'appel pour continuer sa séquence d'instructions.

    Avec le mode asynchrone, il se peut que les instructions du script s'exécutent trop tôt car elles ont besoin de la réponse de l'appel Ajax mais elles ne l'ont pas encore.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 138
    Par défaut
    Ok merci !

    Et comment faire pour voir si je suis en synchrone ou asynchrone ? Car si je comprends bien, tu penses que je suis en asynchrone alors qu'il faudrait que je soies en synchrone..

  6. #6
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Il me semble que c'est par défaut en asynchrone. L'alert laisse le temps à l'appel Ajax de se terminer.
    Soit tu passes en synchrone, soit tu continues ta séquence d'instructions dans la fonction callback de l'appel (fonction appelée au retour de l'appel Ajax).

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

Discussions similaires

  1. code non managé avec interface managée ...
    Par izbad dans le forum MFC
    Réponses: 6
    Dernier message: 19/12/2005, 16h36
  2. Probléme de code non portable
    Par Stany dans le forum Windows
    Réponses: 2
    Dernier message: 23/08/2005, 11h02
  3. code non éxécutable
    Par abidi_niz dans le forum Langage SQL
    Réponses: 1
    Dernier message: 18/07/2005, 10h03

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