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

AJAX Discussion :

[AJAX]Ffaire patientez un internaute le temps d'une fonction php


Sujet :

AJAX

  1. #1
    Membre confirmé Avatar de pierrot2908
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Mars 2007
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Mars 2007
    Messages : 131
    Par défaut [AJAX]Ffaire patientez un internaute le temps d'une fonction php
    Bonsoir,
    Je dois faire patienter les internautes le temps d'une fonction PHP. cette fonction fait appelle à différent serveurs web ce qui implique un temps d'attente d'environs 6s. L'objectif est donc d'avoir un popup qui s'affiche le temps du traitement.
    Je pense que la seule facon de faire est du AJAX mais je n'ai jamais vraiment utilisé AJAX d'ou quelques lacunes.
    Merci d'avnace

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,
    Je pense que la seule facon de faire est du AJAX mais je n'ai jamais vraiment utilisé AJAX d'ou quelques lacunes.
    Le tutoriel
    L'objectif est donc d'avoir un popup qui s'affiche le temps du traitement.
    Tu peux manipuler simplement le contenue d'un div ou span.

  3. #3
    Membre confirmé Avatar de pierrot2908
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Mars 2007
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Mars 2007
    Messages : 131
    Par défaut
    Je précise ma question, qui ne me semble pas très claire,
    J'utilise comme framework Prado (mais c po le pb) dans mon formulaire je souhaite lorsque l'on clic sur le bouton de lancement lancer avec l'évènement Onclic le script javacript.
    Ensuite le script ferai appel un fonction XX classe php. est possible en Ajax?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OnClic = "mafonctionJavascript"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script> la je ne sais po quoi mettre </script>
    merci de votre aide

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Je ne comprend pas ton problème.
    Ensuite le script ferai appel un fonction XX classe php. est possible en Ajax?
    As-tu lu le tutoriel sur le lien que j'ai donné sur mon poste précédent?
    En effet la technologie Web entière est basée sur le modèle de l'aller retour : pour une requête serveur, vous avez un retour qui se traduit par un rafraîchissement des données (la page Web affichée).

  5. #5
    Membre confirmé Avatar de pierrot2908
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Mars 2007
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Mars 2007
    Messages : 131
    Par défaut
    dsl je n'avais po vu ton message au moment ou j'ai posté.
    Je viens de lire le tuto. cependant je ne vois po du tout comment faire appel à ma fonction php.

    Sinon qu'est ce que tu entends par la manipulation de div

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    cependant je ne vois po du tout comment faire appel à ma fonction php.
    1-tu faits une requête AJAX pour envoyer les données vers le fichier php.
    2-Quand le fichier reçoit les données, tu lances la fonction et retourne son résultat.
    3-le requête AJAX récupère le résultat et l'affiche sur la page.
    Comprendre les mécanismes d'AJAX

  7. #7
    Membre confirmé Avatar de pierrot2908
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Mars 2007
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Mars 2007
    Messages : 131
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
                        <com:TImageButton
                        	ImageUrl="<%=$this->Page->Theme->BaseUrl%>/images/auto/btn-telechargez-imprimez.gif"
                            OnClick="redirectMail" //reference a la fonction php
                            ToolTip="Téléchargez et imprimez votre demande"
                            ValidationGroup="FormGroup"
                            />
    et la sur le OnClic je voudrai avoir un tickbox le temps de l'execution du php

  8. #8
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    C'est dans le onclick que tu dois appeler la fonction AJAX. Tu trouves comment faire une fonction AJAX dans le tutoriel.

  9. #9
    Membre confirmé Avatar de pierrot2908
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Mars 2007
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Mars 2007
    Messages : 131
    Par défaut
    merci pour ta réponse, je omprend bien kil faut utilisé le Onclic mais la je doit fait pour le 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
     
    <script language="javascript">
     
    function fonction ( ){
     
    		var texte = document.getElementById("champ").value;
     
    		var xhr_object = null; 
     
    	   if(window.XMLHttpRequest) // Firefox 
    	      xhr_object = new XMLHttpRequest(); 
    	   else if(window.ActiveXObject) // Internet Explorer 
    	      xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); 
    	   else { // XMLHttpRequest non supporté par le navigateur 
    	      alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    	      return; 
    	   } 
     
    	   xhr_object.open("POST", "./traitement.php", true);// c'est ici comment dire prend la fonction redirectMail
     
    	   xhr_object.onreadystatechange = function() { 
    	      if(xhr_object.readyState == 4) {
    			 //alert(xhr_object.responseText); // DEBUG MODE
    			 // --- ICI le retour (c'est à dire tout ce qui est écrit dans le fichier de traitement)
    			 // --- est interprété, donc il suffi d'écrire du code JS dans traitement.php pour
    			 // --- qu'il soit interprété au retour.
    	         eval(xhr_object.responseText);
    		  }
    	   } 
     
    	   xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    	   // --- ICI TU PASSE TES ARGUMENTS AU SCRIPT :
    	   var data = "donnee="+texte;
    	   xhr_object.send(data);
     
    }
     
    </script>

  10. #10
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Dans traitement.php tu appelles la fonction.
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    function fonction($a)
    {
      echo $a;
    }
    if(isset($_POST['donnee']))
    {
      fonction($_POST['donnee'])
    }
    ?>
    et tu récupères le retour avec xhr_object.responseText dans ton JS.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     xhr_object.onreadystatechange = function() { 
    	      if(xhr_object.readyState == 4) {
    			alert(xhr_object.responseText);// Tu affiche le retour de la fonction php.
    		  }
    	   }

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 136
    Par défaut
    * 0 : L'objet XHR a été créé, mais pas encore initialisé (la méthode open n'a pas encore été appelée)
    * 1 : L'objet XHR a été créé, mais pas encore envoyé (avec la méthode send )
    * 2 : La méthode send vient d'être appelée
    * 3 : Le serveur traite les informations et a commencé à renvoyer des données
    * 4 : Le serveur a fini son travail, et toutes les données sont réceptionnées
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if(xhr_object.readyState == 3){traitement attente}
    if(xhr_object.readyState == 4){traitement final}

Discussions similaires

  1. Réponses: 10
    Dernier message: 14/03/2009, 13h36
  2. [AJAX] Charger un module en même temps qu'une page
    Par Calvein dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 30/05/2008, 14h45
  3. [AJAX] Envoi ou non d'un formulaire avec une fonction AJAX
    Par ohhh.gringo dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 16/05/2007, 11h47
  4. Comment mesurer le temps d'une fonction ?
    Par Battosaiii dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 05/10/2006, 16h37
  5. Réponses: 3
    Dernier message: 20/05/2006, 23h28

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