11540 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous,

je réalise une galerie d'image et j'utilise slimbox pour un effet sur les images. mon problème se situe lors de l'exécution d'ajax.

Je clique sur une catégorie, qui exécute de l'ajax+page php et me retourne les images dans un div.

Le problème c'est qu'avec slimbox lorsque je sélectionne une un catégorie (donc ajax) l'effet slimbox n'est plus (ouverture d'une pagewweb classique).

en fait slimbox check les a href de la page , mais quand je modifie le contenue de la page (div) avec de l'ajax, slimbox ne voit rien.

Je recherche de l'aide pour résoudre mon problème (j'ai regardé google, mais j'ai pas trouvé)


function select_categore(nb)
{
 var xhr = getXhr();
            
            // On défini ce qu'on va faire quand on aura la réponse
            xhr.onreadystatechange = function(){
               // On ne fait quelque chose que si on a tout reçu et que le serveur est ok
               if(xhr.readyState == 4 && xhr.status == 200){
                  leselect = xhr.responseText;
					
                  // On se sert de innerHTML pour rajouter les options a la liste
                  document.getElementById('bg-gallery').innerHTML = leselect;
				
				}
				}
            // Ici on va voir comment faire du post
			 
           xhr.open("POST","ajax/ajax_select_categorie.php",true);
            // ne pas oublier ça pour le post
            xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
            // ne pas oublier de poster les arguments
            // ici, l'id de l'auteur
            //alert(idauteur);
			idauteur = nb;
            xhr.send("idauteur="+idauteur);


php

   include ("../fonction/bdd.php");
connexion();
if(isset($_POST['idauteur']))
{

$id_categorie=$_POST['idauteur'];
 $sql3 = "select id_gallery, titre_image, des_image, mini_image, normal_image, DATE_FORMAT(date_image,'%d/%m/%Y') as date_image  FROM gallery WHERE id_categorie='$id_categorie' ORDER BY date_image LIMIT 1";
echo $sql3;
   $query3 = mysql_query($sql3) or die('erreur');
   $nb3= mysql_num_rows($query3);
   if ($nb3 == null){
   echo "<br/> Pas";
   } 
   else 
   {
   while($row = mysql_fetch_assoc($query3))
   {
   echo 'div class="image><a href="img/galerie/normal/'.$row["normal_image"].'" rel="lightbox" title="my caption" ><img src="img/galerie/mini/'.$row["mini_image"].'" alt="creation" /></a>';
   echo '<p>Titre:'.$row["titre_image"].'<p><p>Date:'.$row["date_image"].'<p><p>Logiciel:';
   $id_gallery=$row["id_gallery"];

	}
}
}



Merci

guigui69
J'imagine que le code slimbox a une fonction qui s'execute onload de la page web pour trouver tous les hrefs qu'il doit afficher.

Vu que tu modifies ta page en dynamique via Ajax, tu dois dire a Slimbox que le contenu a change, i.e tu dois rappeler la meme fonction (qui s'execute onload), pour que le nouveau contenu soit prise en compte.
d'accord, mais le problème c'est que je n'ai pas ajouter de onload dans ma page pour que la slimbox foncitionne.

Comment faire maintenant pour appeler cette fonction.
Tu l'as trouve ou ton code slimbox que je regarde comment il fonctionne?
Il y a tellement de variation de ce code.
Une fonction qui contient init peut etre?