Partage
  • Partager sur Facebook
  • Partager sur Twitter

jquery ajax charger plusieurs url?

    13 janvier 2011 à 17:18:04

    Bonjour,
    j'essaie d'ajouter un petit plus en ajax à une galerie mais je manque d'habitude avec le javascript.
    La galerie fonctionne sans js, il y a la page portfolio.php dans laquelle se trouve les vignettes cliquables et l'aperçu, et un fichier xml listant toutes les img.

    Dans un premier temps je récupère le href du lien de la vignette (genre ?name=monimage1), j'en extrait la valeur de l'attribut name, et j'actualise l'src de l'aperçu.

    Jusque là ca va!

    Oui mais voilà, il me faut aussi actualiser d'autres choses telles que le h1 et le alt de l'aperçu. J'avais d'abord placé l'attribut title dans le a pour ensuite le récuperer comme je l'avais fait pour le href.
    Ca fonctionne toujours mais j'aimerai m'en passer car en html5 l'attribut title ne semble pas accepté pour un a...

    Me voila donc avec juste le href, duquel j'ai extrait le name (qui sert d'identifiant) avec lequel j'aimerai charger mon fichier xml pour parcourir chaque img, et si les names correspondent, en récupérer le title.
    L'élément url dans la fonction ajax doit contenir ma page pour le a (par défaut) mais aussi mon xml, il y a moyen d'additionner plusieurs url ou d'imbriquer les fonctions ajax?
    Ca ne me semble pas très propre du tout mais voici ou j'en suis.



    $(document).ready(function(){
    	$("#thumbs a").click(function() {
        	$name=$(this).attr("href").substring(6);
        	newsrcviewer="./images/portfolio/slides/"+$name+".jpg";
        	$.ajax({
        		cache:false,
        		success:function(html){
        			actualiserviewer(html);
        		},
        		error:function(XMLHttpRequest,textStatus,errorThrown){
        			alert(textStatus);
        		}
        	})
        	return false;
        });
    });
    
    function actualiserviewer(data){
    	$("#viewer").fadeOut(500,function(){
    		var $this=$(this);
    		$this.empty();
    		$this.attr("src",newsrcviewer);
    		$this.fadeIn()	
    	})
    }
    
    $(document).ready(function(){
       $.ajax( {
                url: "../xml/portfolio.xml",
                dataType: "xml",
                success: function(xml) 
                         {
                           $(xml).find('img').each(   
                             function()
                             {
                                if ($name == $(this).attr('name'))
                                {
                                	var xmlname = $(this).attr('name');
                               		var xmltitle = $(this).attr('title');
                             		var xmlurl = $(this).attr('url');
                             		alert(xmlurl);
                                }
                              });
                          }
            });
    });
    


    Mon aperçu s'actualise bien, mais aucune alerte à l'horizon, le deuxième ajax ne semble pas fonctionner :/
    Une ame charitable peut elle m'éclairer? :)
    • Partager sur Facebook
    • Partager sur Twitter
      13 janvier 2011 à 18:11:04

      Les infos de de ton image : title, h1 etc c'est dans le XML ?
      • Partager sur Facebook
      • Partager sur Twitter
        13 janvier 2011 à 18:45:23

        Oui les img dans le XML ont des attributs tels que le title qui sera aussi utilisé pour le h1.
        Je suis en train de me demander si c est bien raisonnable d'utiliser Ajax pour lire le XML, le fichier XML pourrait être charge une seule fois initialement et de placer chaque img dans un array, et le réutiliser plus tard? :/
        • Partager sur Facebook
        • Partager sur Twitter

        jquery ajax charger plusieurs url?

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown