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] Réafficher une image choisie dans un div


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 133
    Par défaut [AJAX] Réafficher une image choisie dans un div
    Bonjour,
    J'ai un souci pour faire réafficher une image choisie dans un div.
    Pour commencer, je vais expliquer ce que je souhaite faire.
    J'ai une fenêtre de type <div> ou les utilisateurs peuvent afficher une photo de leur choix. Pour ça, L'utilisateur clique sur une vignette (une liste de photos), le nom de la vignette est stocké dans un cookie pour être ensuite affiché dans le div. Seulement, je n'arrive pas à réafficher mon div pour voir la photo choisie sauf avec le bouton actualiser de mon navigateur.

    Voici donc mes portions de code.
    Mon <div> pour afficher la photo se nomme 'photo_equipe'
    Le choix de la vignette:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
                   <?php
                    $vignette=array();
                    foreach (glob("$chemin/$zenith/*_small.jpg") as $filename) {
                    $vignette=explode('.jpg',$filename);
                    $equipe=str_replace(" ","_",$equipe);
                    echo "<a href='#' onclick=\"envoieRequete('setequipe.php?abrev=$abrev&equipe=$equipe&photo=$filename','photo_equipe');\" ><img src='".$vignette[0].".jpg' border='0' width='86' height='62'></a>";
                    }
                   ?>
    L'enregistrement dans le cookie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?php
            if ($_GET['photo'] !=''){
    	$expire = 365*24*3600;
    	$valeur = "".$_GET['abrev']."_".$_GET['equipe']."";
            $photo = str_replace('_small','',$_GET['photo']);
            setcookie("photo_".$valeur."","".$photo."",time()+$expire);
    	}
    ?>
    Ma fonction 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
    function envoieRequete(url,id)
    {
    	var xhr_object = null;
    	var position = id;
    	   if(window.XMLHttpRequest)  xhr_object = new XMLHttpRequest();
    	  else
    	    if (window.ActiveXObject)  xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); 
     
    	// On ouvre la requete vers la page désirée
    	xhr_object.open("GET", url, true);
    	xhr_object.onreadystatechange = function(){
    	if ( xhr_object.readyState == 4 )
    	{
    		// j'affiche dans la DIV spécifiées le contenu retourné par le fichier
    		document.getElementById(position).innerHTML = xhr_object.responseText;
    	}
    	}
    	// dans le cas du get
    	xhr_object.send(null);
     
    }
    Et là malheureusement, y'a rien qui est renvoyé dans le div.
    J'ai juste réussi à rajouter une ligne qui dit de rafraichir la page pour voir la photo choisie.
    Quelqu'un peut me mettre sur une piste svp ?

    Merci d'avance

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Par défaut
    Bonjour,

    Puisque tu sais "construire" le nom exact de ton image en javascript il n'est pas indispensable de faire un appel AJAX.
    Une simple modification du src d'un tag IMG ou du background de ton DIV devrait faire l'affaire (mais cela ne répond pas directement à ton problème)


    Voyons ton code de plus près...

    Il nous manque le contenu de la réponse AJAX (xhr_object.responseText)

    devyan.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 133
    Par défaut
    Tu veux dire que ma fonction est incomplète ?
    Seulement, je l'ai trouvée sur un autre site et testée en local. Ca fonctionnait.
    Après je me suis contenté de l'adapter en changeant juste les URL et nom des <div>. Je n'ai rien enlevé ni rajouté.

    Tu peux me dire comment récupérer le contenu de la réponse AJAX ?

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Par défaut
    Bonjour,

    Tu nous dis "y'a rien qui est renvoyé dans le div."
    Hors le DIV est rempli comme suit : "document.getElementById(position).innerHTML = xhr_object.responseText;"

    Il serait donc intéressant de voir à quoi ressemble la réponse "xhr_object.responseText" qui est insérée dans le DIV

    devyan

  5. #5
    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,
    +1 devyan
    Peut-on aussi voir le bout de code HTML généré?

    A+.

Discussions similaires

  1. On click sur une vignette et afficher l'image correspondante dans un div
    Par Alexandrebox dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 11/07/2010, 20h42
  2. Insérer une page JSP dans un DIV avec AJAX
    Par sethi dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 31/03/2010, 21h04
  3. [AJAX] Charger une page php dans un div
    Par drannh dans le forum Général JavaScript
    Réponses: 30
    Dernier message: 14/05/2008, 12h16
  4. (AJAX) charger une page aspx dans un div
    Par divinThomas dans le forum ASP.NET
    Réponses: 2
    Dernier message: 10/04/2008, 13h12
  5. [AJAX] Rafraichir une image dans une div
    Par Invité dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 02/03/2008, 17h21

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