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 :

Evénement ajax après un appel ajax [AJAX]


Sujet :

jQuery

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 24
    Points : 23
    Points
    23
    Par défaut Evénement ajax après un appel ajax
    Bonjour,

    a l'ouverture d'un modal bootstrap, je fais un appel ajax pour appeler un script php et intégrer un formulaire dans mon modal. Je fais cette appel ajax car je dois passer des paramètres propres au modal qui se trouve dans une boucle.
    Ensuite, j'utilise un autre appel ajax au submit du formulaire, mais il ne fonctionne pas.
    Si j'écris le code du formulaire directement dans mon modal (qui se trouve donc chargé au premier lancement de la page) mon script ajax qui valide le formulaire fonctionne.

    Comment faire pour exécuter un script ajax après un appel ajax qui aurait été chargé préalablement avec la page php?

    1er appel ajax chargé lors de l'ouverture du modal
    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
     
    <script>
    	$('#testModal').on('show.bs.modal', function(e) {
    	var $modal = $(this),
                idClient = e.relatedTarget.id;
     
    		$(".modal-body").fadeIn(1000).html('<div style="text-align:center; margin-right:auto; margin-left:auto">Patientez...</div>');
    		$.ajax({
    			type:"GET",
    			data : "idClient="+idClient,
    			url:"formulaire.php",
    			error:function(msg){
    				$(".modal-body").addClass("tableau_msg_erreur").fadeOut(800).fadeIn(800).fadeOut(400).fadeIn(400).html('<div style="margin-right:auto; margin-left:auto; text-align:center">Impossible de charger cette page</div>');
    			},
    			success:function(data){
    				$(".modal-body").fadeIn(1000).html(data);
    			}
    		});
    	});
    </script>
    2eme appel ajax

    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
     
    <script>
     
    $(document).ready(function(){
    	$("#formulaire").submit(function(){
    		$.ajax({type:"POST", data: $(this).serialize(), url:"FormAjax.php", 
    			success: function(data){
    				$("#post").html(data);
    			},
                            error: function(){
    			        $("#post").html('Une erreur est survenue.');
    			}
    		});
    		return false;
    	});
    });
     
    </script>
    Les deux scripts se trouvent dans la même page php

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    Si au chargement de le page, l'élément "#formulaire" n'existe pas encore, alors $("#formulaire") ne retournera rien et donc l'évènement ne pourra pas y être accroché.
    Dans ce cas, il faut donc attacher la fonction à "document" comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $(document).on("submit", "#formulaire", function () {
    ...

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 24
    Points : 23
    Points
    23
    Par défaut
    Effectivement c'est logique ! Merci ca fonctionne parfaitement

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/06/2011, 16h11
  2. [AJAX] Appel Ajax dans un appel Ajax avec JS et PHP
    Par Gajilidd dans le forum AJAX
    Réponses: 10
    Dernier message: 27/08/2010, 12h36
  3. Réponses: 1
    Dernier message: 01/09/2009, 11h00
  4. Retour dans le Page_load, après un appel AJAX
    Par BouB dans le forum ASP.NET
    Réponses: 1
    Dernier message: 16/07/2008, 09h38
  5. Réponses: 3
    Dernier message: 05/07/2008, 19h09

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