Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/09/2011, 22h22   #1
Candidat au titre de Membre du Club
 
François Coppey
Inscription : juin 2010
Messages : 92
Détails du profil
Informations personnelles :
Nom : François Coppey

Informations forums :
Inscription : juin 2010
Messages : 92
Points : 11
Points : 11
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 :
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 !
chatis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2011, 08h51   #2
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 040
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 040
Points : 45 141
Points : 45 141
elle est lancée quand ?
je devine, dasn le callback d'un ajax ...
ton ajax est synchrone ou pas ?
__________________
Ma page 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


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2011, 11h58   #3
Candidat au titre de Membre du Club
 
François Coppey
Inscription : juin 2010
Messages : 92
Détails du profil
Informations personnelles :
Nom : François Coppey

Informations forums :
Inscription : juin 2010
Messages : 92
Points : 11
Points : 11
Elle est lancée au moment ou j'envoie le formulaire à l'aide de la fonction suivante (elle utilise le plugin JQuery validationEngine) :

Code :
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.
chatis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2011, 12h06   #4
Responsable JavaScript & AJAX

 
Avatar de vermine
 
Inscription : mars 2008
Messages : 2 690
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mars 2008
Messages : 2 690
Points : 5 763
Points : 5 763
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.
__________________
Elen Poukram - Isegoria - Sandawe
vermine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2011, 12h19   #5
Candidat au titre de Membre du Club
 
François Coppey
Inscription : juin 2010
Messages : 92
Détails du profil
Informations personnelles :
Nom : François Coppey

Informations forums :
Inscription : juin 2010
Messages : 92
Points : 11
Points : 11
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..
chatis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2011, 12h24   #6
Responsable JavaScript & AJAX

 
Avatar de vermine
 
Inscription : mars 2008
Messages : 2 690
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mars 2008
Messages : 2 690
Points : 5 763
Points : 5 763
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).
__________________
Elen Poukram - Isegoria - Sandawe
vermine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2011, 12h36   #7
Candidat au titre de Membre du Club
 
François Coppey
Inscription : juin 2010
Messages : 92
Détails du profil
Informations personnelles :
Nom : François Coppey

Informations forums :
Inscription : juin 2010
Messages : 92
Points : 11
Points : 11
Ok tu avais raison effectivement c'était en asynchrone. j'ai trouvé cette explication dans validationEngine.js :

Code :
1
2
3
 
// if set to true, the form data is sent asynchronously via ajax to the form.action url (get)
                ajaxFormValidation: false,
et moi je le mets à true dans le code.

Par contre, maintenant si je mets à false, le navigateur (qui est sur la page form.php) n'envoie plus le formulaire en ajax. Quand je valide, le navigateur affiche "form_ok.php" et ce n'est pas ce que je voudrais. Je voudrais qu'il reste sur "form.php"
chatis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2011, 12h41   #8
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 040
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 040
Points : 45 141
Points : 45 141
non pas la validation ...
le mode asynchrone !
__________________
Ma page 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


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2011, 12h44   #9
Candidat au titre de Membre du Club
 
François Coppey
Inscription : juin 2010
Messages : 92
Détails du profil
Informations personnelles :
Nom : François Coppey

Informations forums :
Inscription : juin 2010
Messages : 92
Points : 11
Points : 11
a oups pardon

Je regarde ca. Merci de votre aide !
chatis est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h31.


 
 
 
 
Partenaires

Hébergement Web