Mes fonctions ne se lancent pas

Bonjour, voulant recreer mon site, je me suis dit que j allai tenter ajax, seulement je n aurai peut etre pas du!

j ai integre un menu derouant, ca fonctionne tres bien, puis les soucis ont commences :
j utilise ajax pour charger des pages dans un div, sans avoir a recharger la page entiere. ca ne fonctionnait pas jusqu a ce que j enleve les

  • de mes liens (premier bug que je n ai pas compris du tout)
    j utilise lightbox pour les galleries photos, le script s execute grace a un “rel=” a placer dans la balise … cela fonctionne tres bien de base, seulement si ce lien est dans une page que j appelle par ajax (et donc contenu dans un div) ca ne fonctionne pas! si je met le lien en dehors des div, cela fonctionne tres bien!

    bon je sens que je suis a 10000 lieu d etre clair, je m en excuse par avance, et je pense que le mieux est de vous montrer directement la chose :
    kuri.homelinux.org…
    cliquez sur Photos puis Apero LSR @Popof, normalement en cliquant sur les photos on devrait avoir un joli effet … mais a la place cela affiche juste la photo dans une nouvelle page, comme vous pouvez le voir en cliquant sur la photo qui est en bas a gauche de la page.

    je ne fournit pas les sources, le probleme n etant absolument pas un probleme de PHP (et il y a si peu de code php …), mais bien un soucis de javascript/CSS

    En esperant que quelqu un soit capable de m aider, car j ai cherche des heures sans trouver, merci.

  • Tu fais un Lightbox.Init() une fois ta réponse Ajax arrivée et ca marchera.

    Ou alors tu changes tes liens et au lieu de mettre l’attribut rel tu utilise onclick=“Lightbox.show(‘lien image’, ‘titre’)”.

    Cela ne fonctionne pas, de meme que le “OnClick” ne s effectue pas du tout lorsqu il est dans le div, tout comme pour mon menu, si j enleve pas les

  • , les OnClick ne font rien du tout!

    le Lightbox.Init() je l ai mis a la fin de ma fonction envoieRequete(url,id), et ca ne change rien non plus

  • J ai fait un page test, ou je n ai pas mon menu deroulant. ( kuri.homelinux.org… )
    sur le div qui contient les pages, sur la donnee par defaut je peux mettre une image a charger par lightbox, ca fonctionne tres bien, par contre si je clique sur “themes” et clique sur la photo, qui contient EXACTEMENT le meme code, cela ne fonctionne pas.

    que je fasse un onclick ou un Lightbox.Init(), meme resultat …

    edit : les accents sont mal encodes, suis oblige de tout passer avec les codes html ? est ce que les deux problemes sont lies ?

    Edit 2 : en attendant d avoir une solution, je vais me contenter d utiliser des bons vieux includes, et donc de recharger la page a chaque fois .
    Edité le 26/11/2007 à 03:25

    J’ai repéré le problème
    En fait Lightbox fonctionne sans aucun problème
    MAIS pour que tes images se lancent correctement avec Lightbox tu dois attendre que la page soit chargée TOTALEMENT (donc que l’ensemble des images soient chargées dans la navigateur.

    Si tu n’attends pas la fin du chargement, Lightbox ne s’intialise pas, et le navigateur redirige vers le “href” de chaque lien (donc ouvre l’image dans la page au lieu de ouvrire avec lightbox)

    Alors quelle solution?

    D’une, il faut que tu proposes à l’utilisateur d’attendre que toute la page soit chargée.
    Graphiquement tu peux faire ça avec une DIV que tu caches sur le onload de la page.
    Pour ton exemple, dans la DIV “Page”, j’ajoute une DIV “PageLoading” qui contient un texte “Chargement de la page”
    J’ai également ajouté une autre DIV “PageContent” qui contient toutes les images. Cette DIV est caché au démarrage.

    Sur le onload de la page, j’appelle une nouvelle fonciton qui va se charger de :

    • cacher la DIV de loading
    • afficher la DIV des images
    • appeler la fonction qui initialise le menu

    Exemple avec ton script :

    – JavaScript

    
    function initPage(){
        document.getElementById('PageLoading').style.display = "none";
        document.getElementById('PageContent').style.display = "";
        
        initSlideDownMenu();
    }
        
    window.onload = initPage;
    
    

    –html

    
    <div id="Page">
    <div id="PageLoading" style="text-align:center; color:#FFF;">... Chargement de la page ...</div>
    <div id="PageContent" style="display:none";>
    <H1>Week end chez Popof - Octobre 2006</H1><CENTER><a href="Photos/Apero_LSR_Chez_Popof/IMG_0526.jpg" onclick="Lightbox.show('Photos/Apero_LSR_Chez_Popof/IMG_0526.jpg', 'titre')" rel=lightbox><IMG SRC=Photos/Apero_LSR_Chez_Popof/_tbh_IMG_0526.jpg BORDER=0></a><a href="Photos/Apero_LSR_Chez_Popof/IMG_0527.jpg" onclick="Lightbox.show('Photos/Apero_LSR_Chez_Popof/IMG_0527.jpg', 'titre')" rel=lightbox><IMG SRC=Photos/Apero_LSR_Chez_Popof/_tbh_IMG_0527.jpg BORDER=0></a><a href="Photos/Apero_LSR_Chez_Popof/IMG_0528.jpg" onclick="Lightbox.show('Photos/Apero_LSR_Chez_Popof/IMG_0528.jpg', 'titre')" rel=lightbox><IMG SRC=Photos/Apero_LSR_Chez_Popof/_tbh_IMG_0528.jpg BORDER=0></a><a href="Photos/Apero_LSR_Chez_Popof/IMG_0529.jpg" onclick="Lightbox.show('Photos/Apero_LSR_Chez_Popof/IMG_0529.jpg', 'titre')" rel=lightbox><IMG SRC=Photos/Apero_LSR_Chez_Popof/_tbh_IMG_0529.jpg BORDER=0></a><BR><a href="Photos/Apero_LSR_Chez_Popof/IMG_0530.jpg" onclick="Lightbox.show('Photos/Apero_LSR_Chez_Popof/IMG_0530.jpg', 'titre')" rel=lightbox><IMG SRC=Photos/Apero_LSR_Chez_Popof/_tbh_IMG_0530.jpg BORDER=0></a></CENTER>
    <div id=icons><img src=img/icons/SSL12757.jpg></div></div></div>
    
    

    J’ai déposé la page index2.php que tu utilises sur un autre serveur web avec mes corrections (uniquement le code html bien évidemment)
    Voila ce que cela donne (vide ton cache navigateur pour voir le loading apparaître car les images sont celles de ton serveur…) :

    www.megatom.info…

    En espérant t’avoir aidé
    a+