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

Bibliothèques & Frameworks Discussion :

AJAX : récupérer le contenu d'une page web


Sujet :

Bibliothèques & Frameworks

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 126
    Points : 55
    Points
    55
    Par défaut AJAX : récupérer le contenu d'une page web
    Bonjour, je suis en train de faire un compte à rebours en JS, et mon site utilise mootools (v1.2).

    J'ai écris un fichier time.php qui affiche juste le timestamp du server :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <?php echo time(); ?>
    Maintenant, ce que je veux faire c'est récupérer le timestamp affiché par cette page dans une variable, en 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
     
    window.addEvent('domready', function(){
    	var SERVERTIME = getServerTime();
    	alert(SERVERTIME);
    });
     
    function getServerTime(){
    	var req = new Request({
    		method: 'get',
    		url: "/style/countdown/time.php"
    	}).send();
     
    	return req.response;
    }
    Et ça marche pas, il m'affiche undefined alors qu'il devrait afficher le contenu de la page time.php, donc le timestamp du server.

    Comment faut faire ?

    Je vois pas trop, mootools est une vrai usine à gaz, j'ai lu la doc et plusieurs tutos mais rien n'y fait.

    Merci

  2. #2
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 36
    Points : 99
    Points
    99
    Par défaut
    Problème de synchronisation.

    On affecte la valeur alors que la réponse n'est pas encore revenue.

    On peut utiliser onSuccess pour s'assurer que le script php a bien retourné la réponse.

    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
    <html>
    	<head>
    		<script type="text/javascript" src="js/mootools-core.js" ></script>	
    		<script type="text/javascript" src="js/mootools-more.js" ></script>	
    		<script type="text/javascript" >
     
    		var SERVER_TIME = 0;
     
    		window.addEvent('domready', function(){
    			getServerTime();
     
    		});
     
    		function getServerTime(){
    			var req = new Request({
    				method: 'get',
    				url: "time.php",
    				onSuccess:function(responseText,responseXml){
    					SERVER_TIME = responseText;
    					alert(SERVER_TIME);
    				}
    			}).send();
    		}
     
     
    		</script>
    	</head>
    	<body>
     
    	</body>
     
    </html>


    On peut forcer une requête synchrone en l'attribut async de l'objet Request à false; ainsi, tant que la requête et ses traitements ne sont pas terminés, le code qui suit l'appel à Request.send() n'est pas exécuté (la requête est synchrone).

    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
     
    		var SERVER_TIME = 0;
     
    		window.addEvent('domready', function(){
    			getServerTime();
    			alert(SERVER_TIME);
    		});
     
    		function getServerTime(){
    			var req = new Request({
    				method: 'get',
    				async: false,
    				url: "time.php",
    				onSuccess:function(responseText,responseXml){
    					SERVER_TIME = responseText;
    				}
    			}).send();
    		}

Discussions similaires

  1. Récupérer le contenu d'une page web protégée
    Par karoudja dans le forum Langage
    Réponses: 3
    Dernier message: 27/08/2007, 10h21
  2. récupérer le contenu d'une page web
    Par marielaure2805 dans le forum Langage
    Réponses: 4
    Dernier message: 28/02/2007, 13h12
  3. Récupérer le contenu d'une page web
    Par smarties dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 13/02/2007, 01h25
  4. [Servlet]Récupérer le contenu d'une page web
    Par Jarodnet dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 06/10/2005, 15h47

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