<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Hooba Studios &#187; jQuery</title>
	<atom:link href="http://www.hooba.ca/blog/categorie/jquery/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.hooba.ca/blog</link>
	<description></description>
	<lastBuildDate>Sun, 11 Jul 2010 13:51:09 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Échange d&#8217;objets JSON entre PHP et JavaScript, facile grâce à jQuery</title>
		<link>http://www.hooba.ca/blog/2008/echange-dobjets-json-entre-php-et-javascript-facile-grace-a-jquery/</link>
		<comments>http://www.hooba.ca/blog/2008/echange-dobjets-json-entre-php-et-javascript-facile-grace-a-jquery/#comments</comments>
		<pubDate>Sat, 22 Nov 2008 19:28:19 +0000</pubDate>
		<dc:creator>Antoine Leclair</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.hooba.ca/blog/?p=105</guid>
		<description><![CDATA[Sites internet AJAX avec jQuery
jQuery fourni un moyen efficace de sélectionner des éléments du DOM et de les affecter, mais il fourni aussi un moyen très simple de faire de l&#8217;échange AJAX. Il fourni des fonctions comme load(), $.get(), $.post(), $.ajax() et, mon sujet d&#8217;aujourd&#8217;hui, $.getJSON().
Cette fonction permet de faire une requête en envoyant un [...]]]></description>
			<content:encoded><![CDATA[<h3>Sites internet AJAX avec jQuery</h3>
<p>jQuery fourni un moyen efficace de sélectionner des éléments du DOM et de les affecter, mais il fourni aussi un moyen très simple de faire de l&#8217;échange AJAX. Il fourni des fonctions comme <code>load()</code>, <code>$.get()</code>, <code>$.post()</code>, <code>$.ajax()</code> et, mon sujet d&#8217;aujourd&#8217;hui, <code>$.getJSON()</code>.</p>
<p>Cette fonction permet de faire une requête en envoyant un objet JSON, qui sera traduit en paramètres GET, et de reçevoir en réponse un objet JSON qui sera automatiquement traité.<span id="more-105"></span></p>
<h3>Exemple</h3>
<p>Pour démontrer le fonctionnement, je vous montre 3 fichiers. Le fichier HTML (un extrait):</p>
<pre><code>&lt;h2 id="nom"&gt;&lt;/h2&gt;
&lt;p id="prix"&gt;&lt;/p&gt;
&lt;p id="description"&gt;&lt;/p&gt;</code></pre>
<p>Le fichier Javascript:</p>
<pre><code>$(function(){

  // lorsque le DOM est chargé, cette fonction sera exécutée

  $.getJSON("handler.php",  // le fichier qui recevera la requête
    {"categorie": "electronique", "produit": 3},  // les paramètres
    function(data){  // la fonction qui traitera l'objet reçu
      $("#nom").html(data.nom);
      $("#prix").html(data.prix);
      $("#description").html(data.description);
  });
});</code></pre>
<p>Le fichier PHP (<code>handler.php</code> dans ce cas):</p>
<pre><code>&lt;?php
  // ...
  // code qui utilise $_GET['categorie'] et $_GET['produit']
  // pour ses requêtes de base de donnée
  // ...

  $reponse['nom'] = $nom;
  $reponse['prix'] = $prix;
  $reponse['description'] = $description;

  // on a notre objet $reponse (un array en fait)
  // reste juste à l'encoder en JSON et l'envoyer

  header('Content-Type: application/json');
  echo json_encode($reponse);
?&gt;
</code></pre>
<h3>Ce qui se produit</h3>
<p>Lorsque le DOM de la page est chargé, jQuery envoie une requête à <code>hanlder.php</code> en arrière plan. La requête est un <code>GET</code>, donc l&#8217;URL réel demandé sera:</p>
<pre><code>handler.php?categorie=electronique&#038;produit=3</code></pre>
<p>Le fichier <code>handler.php</code> reçoit la requête, fait les traitement nécessaire et crée un objet prêt à être envoyé. Lorsqu&#8217;il a terminé de créé son objet à envoyer, il signifit dans le header HTTP qu&#8217;il envoie une réponse JSON. Il envoie ensuite l&#8217;objet qu&#8217;il a traduit en JSON. Le script JavaScript attendait la réponse avec la fonction qui avait été passée en paramètre à <code>$.getJSON()</code>. L&#8217;objet est donc traité et on peut s&#8217;en servir à notre guise (dans ce cas, on affiche les informations du produit demandé).</p>
<h3>Encore une fois, jQuery faclilite la conception</h3>
<p>C&#8217;était donc une raison de plus d&#8217;aimer jQuery (je vous assure qu&#8217;il y en a plein d&#8217;autres là d&#8217;où elles viennent).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hooba.ca/blog/2008/echange-dobjets-json-entre-php-et-javascript-facile-grace-a-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introduction à jQuery</title>
		<link>http://www.hooba.ca/blog/2008/introduction-a-jquery/</link>
		<comments>http://www.hooba.ca/blog/2008/introduction-a-jquery/#comments</comments>
		<pubDate>Thu, 13 Nov 2008 16:29:00 +0000</pubDate>
		<dc:creator>Antoine Leclair</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.hooba.ca/blog/?p=125</guid>
		<description><![CDATA[Vous devez trouver que je fais beaucoup d&#8217;articles &#171;&#160;Introduction à &#8230;&#160;&#187;! Je veux simplement m&#8217;assurer que tout le monde sait au moins de quoi je parle avant d&#8217;aller plus loin.
Libraire JavaScript
jQuery est une librairie JavaScript légère et de plus en plus populaire. Il couvre, entre autres, la modification du DOM, avec ou sans animation, la [...]]]></description>
			<content:encoded><![CDATA[<p>Vous devez trouver que je fais beaucoup d&#8217;articles &laquo;&nbsp;Introduction à &#8230;&nbsp;&raquo;! Je veux simplement m&#8217;assurer que tout le monde sait au moins de quoi je parle avant d&#8217;aller plus loin.</p>
<h3>Libraire JavaScript</h3>
<p>jQuery est une librairie JavaScript légère et de plus en plus populaire. Il couvre, entre autres, la modification du DOM, avec ou sans animation, la gestion des évènements et le AJAX. Il ne pèse que 15Kb lorsque gzippée par le serveur. Même Microsoft est en train de l&#8217;intégrer dans sa suite Visual Studio !<span id="more-125"></span></p>
<h3>Avantages d&#8217;utiliser jQuery</h3>
<p>Pourquoi utiliser une librairie JavaScript alors qu&#8217;on pourrait tout coder à la main? Il y a plusieurs bonnes raisons, et je n&#8217;en n&#8217;énumererai que quelques unes.</p>
<p>Premièrement, c&#8217;est beaucoup plus rapide de programmer une fonctionnalité avec jQuery que de l&#8217;écrire à partir de rien. Il permet donc de rehausser la valeur de vos projets de conception web en diminuant le temps consacré ou bien en vous permettant d&#8217;implémenter des fonctionnalités plus poussées.</p>
<p>Ensuite, il est conçu pour fonctionner dans tous les navigateurs récents (ainsi qu&#8217;Internet Explorer 6). Si vous programmez souvent en JavaScript vous savez à quel point chaque navigateur offre une version différente de JavaScript et à quel point ça peut rendre le code complexe et illisible.</p>
<p>Aussi, le fait d&#8217;utiliser une librairie aussi poussée peut vous éviter d&#8217;avoir recours à Flash, qui est une technologie propriétaire. Flash est, encore aujourd&#8217;hui, un &laquo;&nbsp;gâcheur de <em>party</em>&nbsp;&raquo; lorsque le site est visionné à partir d&#8217;un téléphone.</p>
<h3>Télécharger jQuery</h3>
<p>Allez chercher le fichier JavaScript de production sur <a href="http://jquery.com/">le site officiel de jQuery</a>. Ensuite, il suffit de l&#8217;insérer dans votre <code>&lt;head&gt;</code> comme avec un autre script normal:</p>
<pre><code>&lt;script type="text/javascript" src="jquery-1.2.6.min.js"&gt;&lt;/script&gt;</code></pre>
<h3>Utilisation de base</h3>
<p>Dans jQuery, il y a la fonction <code>$</code> et le namespace <code>$</code> qui contient toutes les autres fonctions.</p>
<p>La fonction <code>$</code> a plusieurs utilitées différentes dépendemment des paramètres qu&#8217;on lui passe. Si on lui passe une fonction en paramètre, jQuery exécutera cette fonction lorsque le DOM sera chargé (sans pour autant attendre que toutes les images soient chargées). Exemple:</p>
<pre><code>$(function(){ /* faire quelque chose */ });</code></pre>
<p>Si on lui passe une chaîne de caractère qui contient un sélecteur CSS, il va retourner l&#8217;ensemble des noeuds qui répondent aux conditions. Exemple (qui en soit ne sert à rien):</p>
<pre><code>$('ul#nav');</code></pre>
<p>On peut affecter cet ensemble de noeuds avec des méthodes de jQuery. Si on voulait faire disparaître comme un panneau à glissière l&#8217;ensemble retourné de l&#8217;exemple précédent, on ferait:</p>
<pre><code>$('ul#nav').slideUp('fast');</code></pre>
<p>La fonction <code>$</code> peut également recevoir du code HTML en paramètre. Elle créera alors un noeud (<em>DOM element</em>). Encore une fois, employé seul, ça ne sert pas à grand chose, mais on pourra utiliser ce noeud ailleurs. Exemple:</p>
<pre><code>$("&lt;li&gt;déconnexion&lt;/li&gt;").appendTo("ul#nav");</code></pre>
<p>Le namespace $ contient les fonctions qui ne sont pas nécessairement attachées à un noeud. Il y a entre autres certaines fonctions AJAX et les fonctions utilitaires (<em>utilities</em>). Exemple:</p>
<pre><code>$.post('/handler.php',
  {'action': 'achat', 'produit': 434},
  function(data){/* faire quelque chose */}
);</code></pre>
<p>La fonction et le namespace <code>$</code> sont en fait des racourcis vers la fonction  et le namepsace <code>jQuery</code>. Les deux lignes de code suivantes sont donc équivalentes:</p>
<pre><code>$('ul#nav').slideUp('fast');
jQuery('ul#nav').slideUp('fast');</code></pre>
<p>Le racourci <code>$</code> a été ajouté pour accélerer le codage. Par contre, certaines autres librairies JavaScript l&#8217;utlisent aussi. Si vous faite la conception d&#8217;un site internet qui utilise plusieurs librairies, vous pouvez dire à jQuery de libérer <code>$</code>; il suffit d&#8217;utiliser la fonction <code>$.noConflict()</code>.</p>
<h3>Gestion des évènements</h3>
<p>Vous pouvez attacher des évènements à des ensembles de noeuds retournés par la fonction <code>$</code>. L&#8217;avantage d&#8217;utiliser jQuery pour gérer les évènements est, encore une fois, qu&#8217;il armonise la syntaxe pour ne plus avoir à se soucier des différences entre les navigateurs. Pour associer une fonctionnalité à un clic, on utilise <code>.click(fonction)</code>. Pour générer un clic, on peut aussi utiliser <code>.click()</code> (sans paramètre). Exemple:</p>
<pre><code>$('#bouton').click(function(){/* faire quelque chose */});</code></pre>
<h3>Exemple</h3>
<p>Avant de conclure, on va regrouper tout ce qu&#8217;on vient de voir pour faire un petit exemple. Lorsque le DOM est chargé, on va donner vie à un bouton qui permet de cacher et afficher la navigation.</p>
<pre><code>$(function(){ // exécuté lorsque "DOM ready"
  $('#bouton').click(function(){
    $('ul#nav').slideToggle('fast');
  });
});</code></pre>
<h3>Résumé</h3>
<p>jQuery est une librairie légère dont le coeur ne comprends pas une tonne de fonctions. Cette caractéristique rend son apprentissage plutôt rapide et <a href="http://docs.jquery.com/">sa documentation</a> très concise. Beaucoup de <em>plugins</em> sont disponibles et il est facile d&#8217;en créer soi-même. Elle est donc une librarie de choix pour la conception de sites internet &laquo;&nbsp;web 2.0&#8243;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hooba.ca/blog/2008/introduction-a-jquery/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
