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 :

[AJAX] AJAX: effet de chargement sur formulaires


Sujet :

JavaScript

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 211
    Points : 196
    Points
    196
    Par défaut [AJAX] AJAX: effet de chargement sur formulaires
    Bonjour,

    J'ai pas mal de questions aujourd'hui...

    Maintenant c'est un probleme avec un loader: J'ai un formulaire, et une fois cliqué le bouton de soumission est censé disparaitre au profit d'un petit GIF de chargement, jusqu'a ce que l'appel AJAX soit revenu dans la page.
    Le probleme est que mon Submit ne disparait que lorsque l'appel AJAX est chargé.
    Quelle est la solution pour, sur une unique action (onclick), avoir un effet immediat sur un element du style, puis le chargement des effets de l'appel AJAX?

    Merci encore de votre aide!

    Thomas

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par nabab Voir le message
    Quelle est la solution pour, sur une unique action (onclick), avoir un effet immediat sur un element du style, puis le chargement des effets de l'appel AJAX?
    Dans un premier temps, nous donner le code (html + JS) que tu utilises actuellement

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 211
    Points : 196
    Points
    196
    Par défaut
    Ok, j'ai fait plusieurs essais:

    Ca, c'est la fonction pour mettre une image de chargement a la place du bouton:
    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
     
    function loadAjaxObject(Ele)
    {
    	var me = document.getElementById(Ele);
    	var Parent;
    	if ( Parent = me.parentNode )
    	{
    		Parent.removeChild(me);
    		var loader = document.createElement('div');
    		loader.style.width = '16px';
    		loader.style.height = '16px';
    		loader.style.float = 'left';
    		Parent.appendChild(loader);
    		var image = document.createElement('img');
    		image.src = '../_shared/images/loader.gif';
    		image.style.border = '0';
    		loader.appendChild(image);
    		return true;
    	}
    }
    Et ca, c'est ma fonction qui renvoie du contenu par 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
     
    function doAjaxAction(File,Param1,Param2,Param3,Param4){
    	var myajax = new XMLHttpRequest();
    	myajax.open("POST", File);
    	myajax.onreadystatechange = function()
    	{
    		if (myajax.readyState == 4 && myajax.status == 200)
    		{
    			eval(myajax.responseText);
    		}
    	}
    	myajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    	myajax.send('Param1=' + Param1 + '&Param2=' + Param2  + '&Param3=' + Param3 + '&Param4=' + Param4 );
    }
    Et donc dans ma page, j'ai un bouton qui fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="button" value="Create Booking" class="user" id="button_ajax" onmousedown="loadAjaxObject(this.id);" onclick="doAjaxAction(\'php/test.php\');" />
    Ca, c'est la 5000eme version car avant j'ai essaye de mettre les deux actions sur le meme trigger (onclick), conditionner l'action Ajax sur la fonction de chargement, appeler la fonction Ajax depuis la fonction de chargement, et vice-versa, j'ai essayé aussi d'utiliser d'autres readyState.

    Rien n'a fonctionné...

    Le but c'est simplement d'avoir ce petit graphique de chargement qui apparait au moment du clic, et non une fois que l'appel Ajax a été exécuté.

    Merci de votre aide

  4. #4
    Membre confirmé Avatar de d-Rek
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 438
    Points : 455
    Points
    455
    Par défaut
    Suffit de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" value="Create Booking" class="user" id="button_ajax" onclick="loadAjaxObject('button_ajax'); doAjaxAction('php/test.php');" />
    Le mieux étant d'avoir une fonction pour afficher et une autre pour l'effacer (ou la même mais avec param ou test du display par exemple).
    Tu appelerai alors cette fonction dans ta fonction ajax au tout début et ensuite l'autre (ou la même) juste après ton responseText

    Tschus ! Babaille ! A plouche !


    PS : dans DoAjaxAction, ceci est préférable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myajax.open("POST", File, true);

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/01/2016, 09h32
  2. [1.x] Question sur formulaire ajax
    Par perdu_bxl dans le forum Symfony
    Réponses: 3
    Dernier message: 03/12/2010, 15h50
  3. Formulaire ajax et effet d'apparition
    Par anakyl dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 01/06/2008, 15h14
  4. [AJAX] Ajax, formulaire, div et select
    Par n8ken dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/09/2006, 10h51
  5. [AJAX] Ajax en mode synchrone sur Safari
    Par The Blec dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/02/2006, 17h52

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