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] AJAX et image


Sujet :

AJAX

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 23
    Points : 17
    Points
    17
    Par défaut [AJAX] AJAX et image
    Bonjour,

    J'essaie d'afficher une image via une requête ajax dans le but de la rafraichir régulièrement. Je me suis grandement inspiré de cette discussion.

    J'ai donc une page principale test.php

    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
    go('day', 'ATO.PA');
    function createRequestObject() {
        	var http;
        	if (window.XMLHttpRequest) { // Mozilla, Konqueror/Safari, IE7 ...
            	http = new XMLHttpRequest();
        		}
        	else if (window.ActiveXObject) { // Internet Explorer 6
            	http = new ActiveXObject("Microsoft.XMLHTTP");
        		}
        	return http;
    		} // createRequestObject()
     
         function go(graphique, quote) {
     
    		var url = 'get-image.php?img=' + graphique + '&action=' + quote;
     
    		var http = createRequestObject();
    		http.open('GET', url);
     
    		http.onreadystatechange = (function () {
    		if (http.readyState == 4) {
    			if (http.status == 200) {
    				//var rep = http.responseText;
    				//alert(rep);
     
    						var j = document.getElementById('image'); 
    						document.getElementById('image').src = 'get-image.php'
    						//document.getElementById('idFrame').src = "autreFichier.html";
    						var img = document.createElement('img');
    						img.src = 'get-image.php';
    						//img.scr = xhr.responseText;
    						j.appendChild(img); //noeud enfant
     
    				}
    			else {
    				alert('Pas glop pas glop');
    				}
    			}
    		});
    		http.send(null);
    	} // go()
     
    .../...
     
    <div id="image"> </div>
    et une page get-image.php qui récupère l'image chez Yahoo finance

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php //$quote = $_GET['action']; // marche pas
    $quote = 'ATO.PA'; // ok
    //$graph = $_GET['img']; // marche pas
    $graph = 'day'; //ok
    if ($graph == "day") $img = 'http://chart.finance.yahoo.com/t?s=' . $quote . '&lang=fr-FR&region=FR&width=300&height=180';
    if ($graph == "week") $img = 'http://chart.finance.yahoo.com/v?s=' . $quote . '&lang=fr-FR&region=FR&width=300&height=180';
    if ($graph == "year") $img = 'http://chart.finance.yahoo.com/c/0b/a/' . $quote . '?lang=fr-FR&region=FR&width=300&height=180';
    $info = getimagesize($img);
    header('Content-Type: '.$info['mime']);
    echo file_get_contents($img);
    exit;
    ?>

    Le problème est que la requête AJAX n'a pas l'air d'envoyer les paramètres img et action à get-image.php.

    Si je fixe ces 2 paramètres paramètres dans get-image.php, je récupère bien l'image dans la page principale.
    Si j'ouvre le lien get-image.php?img=day&action=ALT.PA, l'image est récupérée.

    J'ai l'exemple en ligne ici.

    Merci.

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 961
    Points : 44 133
    Points
    44 133
    Par défaut
    Bonjour,
    tu ne devrais lancer tes requêtes que lorsque tes éléments existent dans ta page.

    Dans ce que tu montres je ne vois pas trop l'intérêt d'Ajax.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 23
    Points : 17
    Points
    17
    Par défaut
    Citation Envoyé par NoSmoking Voir le message
    Bonjour,
    tu ne devrais lancer tes requêtes que lorsque tes éléments existent dans ta page.
    Bonjour,

    J'ai décalé le js à la fin, et cela fonctionne correctement.
    Merci!

    Citation Envoyé par NoSmoking Voir le message
    Bonjour,
    Dans ce que tu montres je ne vois pas trop l'intérêt d'Ajax.
    Effectivement, je peux faire un simple rafraichissement du DIV. C'est plus pour exercice...

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

Discussions similaires

  1. [AJAX] Recadrer une image en ligne
    Par wishmastah dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/06/2007, 09h37
  2. [AJAX] rafraichir une image dont le src est un .php en AJAX
    Par avogadro dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 23/12/2006, 19h48
  3. [AJAX] Ajax + bouton type image
    Par Phenomenium dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/12/2006, 09h38
  4. [AJAX] affichage d'images avec ajax
    Par Pi2 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 10/12/2006, 18h56
  5. [AJAX] Rafraichir une image
    Par fragmonster dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 01/11/2006, 13h13

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