<!--:fr-->[tuto jQuery] navigation en ajax non-intrusif (2/2)<!--:-->

[tuto jQuery] navigation en ajax non-intrusif (2/2)

Vous l’attendiez avec impatience, la voila! La fin du tutoriel pour faire une navigation ajaxifiée tout en restant accessible. Un petit point sur ce que l’on a déjà fait :

  • La partie php qui va chercher le bon article en fonction des paramètres
  • Notre squelette XHTML
  • un peu d’habillage CSS

Nous allons maintenant jQueriser notre document. Cette transformation va se présenter en trois parties.

Appeler nos script

Il faut modifier notre squelette xhtml afin de lier nos scripts à notre page. Cela se passe entre les balises head. Il faut préalablement télécharger jQuery si vous ne l’avez pas déjà.

  1.  
  2.         <!-- les deux lignes du dessous -->
  3.     <script src="jquery.js" type="text/javascript"><!--mce:0--></script>
  4.     <script src="script.js" type="text/javascript"><!--mce:1--></script>

La transformation des liens

En premier lieu nous allons modifier tous nos liens. En effet ils se présentaient sous cette forme :

  1. <a href="index.php?page=1">page 1</a>

Or, si nous les gardons sous cette forme notre page va s’afficher « en cascade » puisque nous afficherions dans notre div « contenu » notre index.php.

  1. //pour chaque lien contenu dans un élément de liste
  2. $('li&gt;a').each(function() {
  3.     //on récupere le contenu de l'attribut href
  4.     var link=$(this).attr("href");
  5.     //et on remplace le index par page pour obtenir un lien : page.php?page=x&amp;article=x
  6.     $(this).attr("href",link.replace("index","page"));
  7.   });

L’ « ajaxification » des liens

Maintenant il faut faire appel à la méthode load de jquery pour charger notre article dans le div « contenu ».

  1. //à chaque clic sur un lien contenu dans un élément de liste
  2. $('li&gt;a').click(function() {
  3.     //on récupère l'attribut href
  4.     var link=$(this).attr("href");
  5.     //et on charge le document avec load dans le div d'id contenu
  6.     $("#contenu").load(link);
  7.         return false;
  8. });

Le script final :

  1. $(document).ready(
  2.     //construction du menu
  3.     function()
  4.     {
  5.         //pour chaque lien contenu dans un élément de liste
  6.         $('li&gt;a').each(function() {
  7.             //on récupere le contenu de l'attribut href
  8.             var link=$(this).attr("href");
  9.             //et on remplace le index par page pour obtenir un lien : page.php?page=x&amp;article=x
  10.         $(this).attr("href",link.replace("index","page"));
  11.       });
  12.  
  13.         //à chaque clic sur un lien contenu dans un élément de liste
  14.         $('li&gt;a').click(function() {
  15.             //on récupère l'attribut href
  16.             var link=$(this).attr("href");
  17.             //et on charge le document avec load dans le div d'id contenu
  18.         $("#contenu").load(link);
  19.             return false;
  20.       });
  21.     }
  22. )

Voilà, vous devriez avoir un menu parfaitement fonctionnel. Vous pouvez modifiez votre fichier page.php pour faire des includes de vos fichiers dans les switchs plutôt que d’écrire votre texte en dur.

Montrez nous vos réalisations et n’hésiter pas à faire des remarques, poser des questions, etc ;-)

Did you enjoy this post?

If so, would you please consider sharing it with the world

User Responses

One Response and Counting...

  1. Theo

    mai 02, 2008

    Merci pour ce tuto. C’est exactement ce que je cherchais !

Leave a Reply

Default User

Your Name

mai 02, 2008

* Name, Email, and Comment are Required

Get Adobe Flash playerPlugin by wpburn.com wordpress themes