AJAX

Ok donc tralala c'est l'id de ma DIV, on reste sur le principe d'une class="load" à appliquer sur mes liens (ça ça me plait car c'est facile à appliquer n'importe où).

SI j'ai bien compris j'ai donc un .gif qui est mon loader (ça pas de problème on en trouve plein de bien sur le net), un autre qui est un blank (quelle est sont utilité ?).

En revanche je n'ai pas bien compris le principe de fonctionnement de lien et lien2. :S

PS: désolé de toutes ces questions mais comme je débute j'aime bien comprendre pour pouvoir adapter :).

-----Message d'origine-----
De : spip-bounces@rezo.net [mailto:spip-bounces@rezo.net] De la part de had
Envoyé : mardi 18 décembre 2007 08:08
À : spip@rezo.net
Objet : Re: [Spip] AJAX

TESSIER Nicolas a écrit :

Pourrais tu m'en expliquer brièvement le fonctionnement ??

PS: Merci en tout cas pour cette première réponse rapide !! :slight_smile:
  

euh ...
qd je click sur a.load, charge dans le fond tralala le logo loader, puis transforme l'url du lien en lien spécial pour ajax, charge le lien dans la div tralala, et une fois que c'est fini, remplace le loader par autre chose, et remet le lien dans sa version de base (pour pouvoir recliquer dessus). voilà en gros :wink:

$("a.load").click(
        function() {
        $(this).attr("href", function() {
            $("#tralala").css("background","url(ajax-loader.gif)
no-repeat");
            lien=this.href.replace("spip.php?", "spip.php?ajax-");
            $(this).attr("href", plien );
            $("#tralala").load(this.href, , function()
            {$(this).css("background","url(blank.gif) no-repeat");});
            lien2=this.href.replace("spip.php?ajax-", "spip.php?");
            $(this).attr("href", lien2 );
            });
        return false;
    });

cordialement,
a+ had
_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net Infos et archives :
http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip FAQ :
FAQ webmestre - SPIP
_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net Infos et archives :
http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip FAQ :
FAQ webmestre - SPIP
  
_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/ irc://irc.freenode.net/spip FAQ : http://www.spip.net/fr\_article1054\.html

TESSIER Nicolas a écrit :

En revanche je n'ai pas bien compris le principe de fonctionnement de lien et lien2. :S

PS: désolé de toutes ces questions mais comme je débute j'aime bien comprendre pour pouvoir adapter :).
  

tout d'abord, il y a peut-être d'autre moyen de gerer ça vis à vis de spip (quid url propre ? j'ai pas testé)
et j'aurai du écrire : spip.php?page=

lien=this.href.replace("spip.php?page=", "spip.php?page=ajax-");

on va dire que tu as préparer un squel test.html et un ajax-test.html.

ça permet de faire tes liens "normalement", qui amène en effet à la page test
Sans javascript, c'est bien ce qui va se passer, et le lien sera bon. on charge donc le squel test.html.

Vu que JS fonctionne, on ne renvoit pas le visiteur vers la vrai page test, mais
on va charger la page dans une div. on a besoin d'appeller le squel spécial ajax-test.html

on demande donc à jQuery de remplacer un bout de l'url "page=" par "page=ajax-" pour charger
le bon squel. On charge donc ajax-test.html. Mais ton lien a été réécri par jQuery. Si tu recliques,
le navigateur va demander page=ajax-ajax-test.html. Donc on a besoin de revenir en arrière,
on demande alors à jQuery de réecrire l'url de "page=ajax-" à "page=" tout court,
pour que tu puisses recliquer dessus, sans 404.

bah, après, pour le loader, tu gères, ya plein de façon differente d'apprehender ça
par expl, tu peut avoir une div avec un z-index plus bas que tralala,
dans laquelle il y a un .gif web2.0 et tout et tout. Qd tu charge et décharge tralala, la div du fond
apparait ... bref.

voilà

a+ had

-----Message d'origine-----
  euh ...
qd je click sur a.load, charge dans le fond tralala le logo loader, puis transforme l'url du lien en lien spécial pour ajax, charge le lien dans la div tralala, et une fois que c'est fini, remplace le loader par autre chose, et remet le lien dans sa version de base (pour pouvoir recliquer dessus). voilà en gros :wink:

$("a.load").click(
        function() {
        $(this).attr("href", function() {
            $("#tralala").css("background","url(ajax-loader.gif)
no-repeat");
            lien=this.href.replace("spip.php?", "spip.php?ajax-");
            $(this).attr("href", plien );
            $("#tralala").load(this.href, , function()
            {$(this).css("background","url(blank.gif) no-repeat");});
            lien2=this.href.replace("spip.php?ajax-", "spip.php?");
            $(this).attr("href", lien2 );
            });
        return false;
    });

cordialement,
a+ had