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 :

jquery avec ajax et fonction callback


Sujet :

jQuery

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 6
    Par défaut jquery avec ajax et fonction callback
    Salut à tous,

    jai fait une fonction ajax qui utilise les dialog box de jquery UI.Le hic c'est que la fonction ajax qui est appelée après la validation ne marche pas.

    Voici le code complet de la page javascript.


    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
     $(document).ready(function() {
     
    		 function updateTips(t) {
    			$("#validateTips").text(t).effect("highlight",{},1500);
    		}
     
    		function checkLength(o,n,min,max) {
     
    			if ( o.val().length > max || o.val().length < min ) {
    				o.addClass('ui-state-error');
    				updateTips("La longueur du " + n + " doit être comprise "+min+" et "+max+".");
    				return false;
    			} else {
    				return true;
    			}
     
    		}
     
     
     
    		function checkMessage(o,n) {
     
    			if ( o.val().length <= 0 ) {
    				o.addClass('ui-state-error');
    				updateTips("Vous devez écrire quelque chose dans le message.");
    				return false;
    			} else {
    				return true;
    			}
     
    		}
     
     
            $('a.ajax').click(function() {
                var url = this.href;
                // show a spinner or something via css
                var dialog = $('<div style="display:none" class="loading"></div>').appendTo('body');
                // open the dialog
                dialog.dialog({
                    // add a close listener to prevent adding multiple divs to the document
                    close: function(event, ui) {
                        // remove div with all data and events
                        dialog.remove();
                    },
                    modal: true,
     
    				buttons: {
    				'Envoyer': function() {
    				    var sujet = $("#sujet"),
    			message = $("#messager"),
     
    			allFields = $([]).add(sujet).add(message),
    					 bValid = true;
    					allFields.removeClass('ui-state-error');
     
                        bValid = bValid && checkLength(sujet,"sujet",3,16);
    					bValid = bValid && checkMessage(message,"message"); 
     
     
    					if (bValid) {
    					   var messageDelay = 4000; //durée d'apprition du message e milliseconde  
    					   var form_data = {sujets : $('#sujet').val(),messages : $('#messager').val(),destinataires : $('#destinataire').val()
    			                   };
                    $.ajax({
                        url: $('a.ajax').attr('alt'),
                        type: 'POST',
                        async : false,
                        data: form_data,
                        success: function(msg) {
    					            if(msg='1'){
    								$(this).dialog('close');
    					            response = 'Votre message est bien parti';
                                    $('#successMessage').html(response);
    	                            $('#successMessage').fadeIn().delay(messageDelay).fadeOut();
                                    }
    								else{
    								response = $.trim(msg);
                                    $('#successMessage').html(response);
    	                            $('#successMessage').fadeIn().delay(messageDelay).fadeOut();
                                    }
    								}
                    });
     
                    return false;
    					}
     
    				},
    				Cancel: function() {
    					$(this).dialog('close');
    				}
    			}
                });
                // load remote content
                dialog.load(
                    url, 
                    {}, // omit this param object to issue a GET request instead a POST request, otherwise you may provide post parameters within the object
                    function (responseText, textStatus, XMLHttpRequest) {
                        // remove the loading class
                        dialog.removeClass('loading');
                    }
                );
                //prevent the browser to follow the link
                return false;
            });
     
            });


    J'espère que je ne vous trouble pas le dimanche mais bon dimanche.

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Bonsoir,
    Le hic c'est que la fonction ajax qui est appelée après la validation ne marche pas.
    avec cela on n'est pas bien avancé...

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 6
    Par défaut
    Merci.Je viens de trouver le problème qui me fesait cramer.c'était un div dont javais fait une erreur sur l'ID.Dans ma page html cette balise était avec l'id #successMessage1 au lieu de #successMessage.

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

Discussions similaires

  1. [Plugin] uploader en jquery avec ajax
    Par thor76160 dans le forum jQuery
    Réponses: 5
    Dernier message: 07/10/2012, 14h37
  2. jquery avec ajax et la methode each()
    Par guiguiz dans le forum jQuery
    Réponses: 2
    Dernier message: 24/01/2012, 23h17
  3. jQuery avec ajax ne passe par la valeurs en data
    Par firens dans le forum jQuery
    Réponses: 1
    Dernier message: 01/11/2011, 16h00
  4. Ajax, souci avec la fonction callback
    Par yann18 dans le forum jQuery
    Réponses: 3
    Dernier message: 25/10/2011, 17h10
  5. Réponses: 7
    Dernier message: 03/03/2007, 19h15

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