
<?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>Waanser &#187; incontournable</title>
	<atom:link href="http://www.waanser.com/tag/incontournable/feed" rel="self" type="application/rss+xml" />
	<link>http://www.waanser.com</link>
	<description>Un blog utilisant WordPress</description>
	<lastBuildDate>Wed, 07 Jul 2010 21:54:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Ajax en toute simplicité</title>
		<link>http://www.waanser.com/javascript/general-js/970-ajax-en-toute-simplicite.html</link>
		<comments>http://www.waanser.com/javascript/general-js/970-ajax-en-toute-simplicite.html#comments</comments>
		<pubDate>Fri, 27 Feb 2009 17:58:32 +0000</pubDate>
		<dc:creator>roul</dc:creator>
				<category><![CDATA[Général]]></category>
		<category><![CDATA[incontournable]]></category>
		<category><![CDATA[user-friendly]]></category>

		<guid isPermaLink="false">http://www.waanser.com/?p=970</guid>
		<description><![CDATA[L’Ajax comment cela fonctionne ? Dès qu’un événement JavaScript se produit sur la page (ex : quand on clique sur un bouton), L’ajax va faire appel à un code php. Ce code php va faire un traitement (ex : rechercher une liste de client). Il va renvoyer le résultat au javascript. Et Celui-ci va ensuite [...]]]></description>
			<content:encoded><![CDATA[<h2>L’Ajax comment cela fonctionne ?</h2>
<p>Dès qu’un événement JavaScript se produit sur la page (ex : quand on clique sur un bouton),<br />
L’ajax va faire appel à un code php. Ce code php va faire un traitement (ex : rechercher une liste de client). Il va renvoyer le résultat au javascript. Et Celui-ci va ensuite l’afficher.</p>
<h2>Le jQuery c’est quoi ?</h2>
<p>Le jQuery est un framework Javascript libre qui porte sur l&#8217;interaction entre JavaScript (comprenant l&#8217;AJAX) et HTML, et a pour but de simplifier des commandes communes de Javascript. </p>
<p>En route !</p>
<p>Quoi déjà ? Eh oui, dans cette documentation,  nous allons voir directement l’utilisation de l’Ajax à travers un exemple concret en évitant les explications longues et fastidieuses. <img src='http://www.waanser.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h2>Mise en situation :</h2>
<p>Pour une école nous devons développer une page où l’instituteur pourra afficher les notes de chaque élève pour chaque matière. </p>
<p>Oh lala, ça va nous donner beaucoup de boulot tout ça ! Pas de panique les amis j’ai déjà tout préparé, il suffit juste de télécharger le pack :<a href='http://media.waanser.com/2009/02/ecole71.rar'>ecole</a><br />
Vous le mettez dans votre dossier www.</p>
<p><a href="http://media.waanser.com/2009/02/ajax2.png"><img src="http://media.waanser.com/2009/02/ajax2.png" alt="ajax" title="ajax2" class="alignnone size-full wp-image-980" /></a></p>
<p>Dans un premier temps, il faut créer une base de données <em>ecole</em>. Une fois ceci fait, il suffit de lancer le script ecole.sql dans phpmyadmin. Maintenant, on peut ouvrir notre <a href="http://localhost/ecole/ecole.php">page </a>dans notre navigateur.</p>
<p>Voila notre belle page : </p>
<div id="attachment_983" class="wp-caption alignnone" style="width: 412px"><a href="http://media.waanser.com/2009/02/ajax3.png"><img src="http://media.waanser.com/2009/02/ajax3.png" alt="ajax" title="ajax3" width="402" height="328" class="size-full wp-image-983" /></a><p class="wp-caption-text">ajax</p></div>
<p>L&#8217;utilisation d&#8217;ajax dans cet exemple :</p>
<p>A chaque fois que l&#8217;utilisateur sélectionnera un élève ou une matière, les notes et la moyenne s&#8217;afficheront automatiquement sans rafraîchissement de page.</p>
<p>Dans le code le déclencheur sera donc :</p>
<pre class="brush: html">
&lt;select id =&#039;eleve&#039; onchange=&#039;javascript: chargeNote();&#039;&gt;
</pre>
<p>Et c&#8217;est la fonction <strong>chargeNote</strong> qui va faire appel à php pour afficher les informations.</p>
<h2>Mon premier appel Ajax</h2>
<p>Déjà on va faire appel à notre librairie jQuery.</p>
<pre class="brush: html">
&lt;script src=&quot;http://localhost/ecole/js/jquery-1.3.2.js&quot; type=&quot;text/javascript&quot;  type=&quot;text/javascript&quot;&gt;1&lt;/script
</pre>
<p><u>Astuce :</u></p>
<p>Si vous voulez voir les scripts javascripts chargés sur une page, vous pouvez utiliser le plugin <a href="https://addons.mozilla.org/fr/firefox/addon/2076">JSview </a> sur Firefox. Pour notre page, on voit bien que nos 2 scripts sont chargés.  voila ce que le JSview affiche :<br />
 <div id="attachment_990" class="wp-caption alignnone" style="width: 216px"><a href="http://media.waanser.com/2009/02/jsview.png"><img src="http://media.waanser.com/2009/02/jsview.png" alt="jsview" title="jsview" width="206" height="125" class="size-full wp-image-990" /></a><p class="wp-caption-text">jsview</p></div></p>
<p>Comme notre ajax va faire appel à un code php, nous allons créer cette page php tout de suite.<br />
Pour une meilleur lisibilité nous allons créer un dossier <em>ajax </em>où tous nos codes sources php (appelé par l&#8217;ajax)  seront stockés. Notre premier fichier php qui sera chargé par l&#8217;ajax sera appelé <em>chargeNote.php</em>.</p>
<p>Avant de charger les notes d&#8217;un élève on va juste lui demander d&#8217;afficher un message &laquo;&nbsp;le fichier chargeNote.php est bien appele, l&#8217;ajax fonctionne !&nbsp;&raquo;.</p>
<pre class="brush: php">

echo &quot;le fichier chargeNote.php est bien appele, l&#039;ajax fonctionne !&quot;;
</pre>
<p>Maintenant on va retourner dans fonction javascript chargeNote();</p>
<p>On va utiliser la méthode <strong>jQuery.post</strong> :</p>
<p>Dans le code :</p>
<pre class="brush: jscript">
jQuery.post(&quot;http://localhost/ecole/ajax/chargeNote.php&quot;,
			{},function (sData) {}
	);
</pre>
<p><strong>jQuery.post</strong> a trois paramètres :</p>
<ul>
<li><strong>le premier</strong>  : c&#8217;est l&#8217;adresse du script php qui va être chargée</li>
<li><strong>le deuxième</strong> : c&#8217;est les paramètres qui sont envoyés, attention il faut tout mettre entre accolade{}</li>
<li><strong>le troisième</strong> : c&#8217;est le traitement du retour de la fonction php, pour ceci on fait appel à function (sData) {}(attention le traitement se fera entre accolade{})</li>
</ul>
<p>Ne vous inquiétez pas si vous ne comprenez  pas les détails de ces 3 paramètres, on y reviendra un peu plus tard avec des exemples plus parlant. <img src='http://www.waanser.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Maintenant nous allons voir si notre script fonctionne avec <a href="https://addons.mozilla.org/fr/firefox/addon/1843">firebug</a>, sur note page <a href="http://localhost/ecole/ecole.php">ecole.php</a>. il faut sélectionner un élève ou une matière pour déclencher l&#8217;ajax.</p>
<p>Si tout marche vous devriez voir ça, dans votre console firebug :<br />
<a href="http://media.waanser.com/2009/02/firebug1.png"><img src="http://media.waanser.com/2009/02/firebug1.png" alt="firebug" title="firebug1" class="alignnone size-full wp-image-1002" /></a></p>
<p>Sans plus de détail, on voit que notre message s&#8217;affiche correctement.</p>
<p>Si vous ne vous en sortez vraiment pas voici le <a href='http://media.waanser.com/2009/02/ecole6.rar'>dossier complet</a>.</p>
<h2>Envoyer des paramètres Ajax</h2>
<p>Maintenant que nous avons fait appel à notre premier appel ajax, nous allons voir comment envoyer des paramètres.<br />
En javascript, cela ce passe bien naturellement dans notre fonction <strong>jQuery.post</strong> </p>
<pre class="brush: jscript">
iEleve = document.getElementById(&#039;eleve&#039;).value;
iMatiere = document.getElementById(&#039;matiere&#039;).value;

jQuery.post(&quot;http://localhost/ecole/ajax/chargeNote.php&quot;,
			{iPostEleve : iEleve,iPostMatiere : iMatiere},function (sData) {}
	);
</pre>
<p><strong>iPostEleve  </strong>et <strong>iPostMatiere </strong> sont les noms des variables qui vont être envoyées par l&#8217;ajax. iEleve et iMatiere ce sont les valeurs que l&#8217;on va envoyer( soit les données sélectionnées pas les listes deux listes déroulantes).</p>
<p><strong>Du cotés de chageNote.php comment ça se passe ?</strong></p>
<p>On va récupérer les données comme si on recevait ces données d&#8217;un formulaire, grâce à la variable <strong>$_POST<br />
</strong>.</p>
<p> On va changer le code de notre fichier chargeNote.php : </p>
<pre class="brush: php">
echo &quot;Eleve : &quot;.$_POST[&#039;iPostEleve&#039;];
echo &quot; Matiere : &quot;.$_POST[&#039;iPostMatiere&#039;];
</pre>
<p>Voila ce que cela donne : </p>
<p><a href="http://media.waanser.com/2009/02/ajax4.png"><img src="http://media.waanser.com/2009/02/ajax4.png" alt="ajax" title="ajax4" class="alignnone size-full wp-image-1006" /></a></p>
<p>Maintenant que l&#8217;on sait récupérer <em>l&#8217;id_eleve </em> et <em>l&#8217;id_matiere</em>, ça ne va pas être compliqué pour récupérer la liste de notes. Notre fichier  chargeNote.php va se transformer en :</p>
<pre class="brush: php">

mysql_connect(&quot;localhost&quot;, &quot;root&quot;, &quot;&quot;); // Connexion à MySQL
mysql_select_db(&quot;ecole&quot;); // Selection de la base ecole

$iEleve = $_POST[&#039;iPostEleve&#039;];
$iMatiere = $_POST[&#039;iPostMatiere&#039;];

if ($iEleve &gt; 0 &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp; $iMatiere &gt; 0)
{
	$oNote = mysql_query(&#039;SELECT note FROM note where id_eleve = &#039;.$iEleve.&#039; and id_matiere = &#039;.$iMatiere); // Requête SQL
	while ($aNote = mysql_fetch_assoc($oNote))
	{
		echo $aNote[&#039;note&#039;].&#039;;&#039;;
	}
}
mysql_close();
</pre>
<p>Ce qui va donner : </p>
<p><a href="http://media.waanser.com/2009/02/ajax5.png"><img src="http://media.waanser.com/2009/02/ajax5.png" alt="ajax" title="ajax5" class="alignnone size-full wp-image-1011" /></a></p>
<p>Vous pouvez télécharger l&#8217;avancement de cet exercice juste<a href='http://media.waanser.com/2009/02/ecole7.rar'> ici </a>.</p>
<h2>Recevoir et traiter les données</h2>
<p>Le travail va se faire autour du script <strong>ecole.js</strong>, et plus précisément dans notre fonction jQuery.post.</p>
<p>Voici ce que l&#8217;on va mettre :</p>
<pre class="brush: jscript">
jQuery.post(&quot;http://localhost/ecole/ajax/chargeNote.php&quot;,
			{iPostEleve : iEleve,iPostMatiere : iMatiere},
			function (sData) {
					var aNotes = sData.split(&quot;;&quot;);
					document.getElementById(&#039;note&#039;).innerHTML=&quot;&quot;;
					for (iNote in aNotes) {
						document.getElementById(&#039;note&#039;).innerHTML = document.getElementById(&#039;note&#039;).innerHTML+&#039; &#039;+aNotes[iNote];
					}

			}
	);
</pre>
<p>C&#8217;est la fonction <strong>function () {}</strong> qui va  récupérer les données et les mettre dans sData.<br />
Une fois ce ceci fait, il nous suffit de transformer le résultat en tableau à l&#8217;aide de la commande sPlit.<br />
il nous reste plus qu&#8217;a afficher les données.</p>
<p>Une petite visualisation :</p>
<p><a href="http://media.waanser.com/2009/02/ajax6.png"><img src="http://media.waanser.com/2009/02/ajax6.png" alt="ajax" title="ajax6" class="alignnone size-full wp-image-1019" /></a></p>
<p>Voila vous savez faire de l&#8217;ajax <img src='http://www.waanser.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  !</p>
<p>Maintenant vous devriez être capable de faire la moyenne tout seul (surtout que c&#8217;est plus simple). :p</p>
<p>Voici la <a href='http://media.waanser.com/2009/02/ecole8.rar'>correction </a> :</p>
<p>Si vous avez des questions, c&#8217;est juste en dessous <img src='http://www.waanser.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
]]></content:encoded>
			<wfw:commentRss>http://www.waanser.com/javascript/general-js/970-ajax-en-toute-simplicite.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Update div ExtJS</title>
		<link>http://www.waanser.com/javascript/extjs/816-update-div-ext-js.html</link>
		<comments>http://www.waanser.com/javascript/extjs/816-update-div-ext-js.html#comments</comments>
		<pubDate>Thu, 12 Feb 2009 21:24:32 +0000</pubDate>
		<dc:creator>tilkc</dc:creator>
				<category><![CDATA[Ext JS]]></category>
		<category><![CDATA[incontournable]]></category>
		<category><![CDATA[user-friendly]]></category>

		<guid isPermaLink="false">http://www.waanser.com/?p=816</guid>
		<description><![CDATA[Dans ce tutoriel nous allons voir la manière pour mettre a jour une div avec Ext JS. En route pour l&#8217;aventure. !! Installation, Téléchargement Rendez-vous sur le site de extjs.com et télécharger la version &#171;&#160;Ext JS x.x SDK&#160;&#187; Sur votre serveur apache (Wamp, EasyPhp), créer un nouveau répertoire comme ceci : Ou téléchargez le package [...]]]></description>
			<content:encoded><![CDATA[<p>Dans ce tutoriel nous allons voir la manière pour mettre a jour une div avec Ext JS.<br />
En route pour l&#8217;aventure. !!</p>
<h2>Installation, Téléchargement</h2>
<p>Rendez-vous sur le site de extjs.com et télécharger la version <a href="http://extjs.com/products/extjs/download.php">&laquo;&nbsp;Ext JS x.x SDK&nbsp;&raquo;</a></p>
<p>Sur votre serveur apache (Wamp, EasyPhp), créer un nouveau répertoire comme ceci :<br />
<img src="http://media.waanser.com/2009/02/arboextupdate.jpg" alt="Arborescence ExtJS Update : www.waanser.com" /></p>
<p><a href="http://media.waanser.com/2009/02/tutoupdatedivext1.zip">Ou téléchargez le package de ouf sur le premier exemple.</a></p>
<h2>Exemple : Update</h2>
<p>La fonction Update nous permet de mettre a jour les données.<br />
Nous créons une div, par la suite avec l&#8217;id unique nous pourrons modifier son contenu.<br />
Voyez plutôt l&#8217;exemple :</p>
<p>
<pre class="brush: html">&lt;br /&gt;
&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01//EN&quot; &quot;http://www.w3.org/TR/html4/strict.dtd&quot;&gt;&lt;br /&gt;
&lt;html&gt;&lt;br /&gt;
&lt;head&gt;&lt;br /&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;&lt;br /&gt;
&lt;script src=&quot;ext/adapter/ext/ext-base.js&quot;&gt;&lt;/script&gt;&lt;br /&gt;
&lt;script src=&quot;ext/ext-core-debug.js&quot;&gt;&lt;/script&gt;&lt;br /&gt;
&lt;title&gt;Waanser : Tuto changement Update d&#039;une div&lt;/title&gt;&lt;/p&gt;
&lt;p&gt;&lt;script&gt;&lt;br /&gt;
function getMessage() {&lt;/p&gt;
&lt;p&gt;var el = Ext.get(&#039;message&#039;);&lt;br /&gt;
el.update(&#039;Tilkc : Voila c&#039;est super genial enfin bref le contenu de la div a changer... .&lt;br /&gt;&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;/script&gt;&lt;br /&gt;
&lt;/head&gt;&lt;/p&gt;
&lt;p&gt;&lt;body&gt;&lt;/p&gt;
&lt;p&gt;&lt;div id=&quot;message&quot;&gt;&lt;br /&gt;
Cet exemple, en temps de grise mondiale, est le minimum pour changer le contenu d&#039;une div avec ExtJS.&lt;br /&gt;
Vous constaterez les moyens techniques spectaculaires afin d&#039;arriver a notre but : Changer le texte.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;a href=&quot;#&quot; onclick=&quot;getMessage();&quot;&gt;Update de la div =&gt; GO&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/body&gt;&lt;br /&gt;
&lt;/html&gt;&lt;br /&gt;
</pre>
</p>
<p>Autre Exemple :</p>
<p>
<pre class="brush: html">&lt;br /&gt;
&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01//EN&quot; &quot;http://www.w3.org/TR/html4/strict.dtd&quot;&gt;&lt;br /&gt;
&lt;html&gt;&lt;br /&gt;
&lt;head&gt;&lt;br /&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;&lt;br /&gt;
&lt;script src=&quot;ext/adapter/ext/ext-base.js&quot;&gt;&lt;/script&gt;&lt;br /&gt;
&lt;script src=&quot;ext/ext-core-debug.js&quot;&gt;&lt;/script&gt;&lt;br /&gt;
&lt;title&gt;Waanser : Tuto changement Update d&#039;une div 2 plus sympa&lt;/title&gt;&lt;/p&gt;
&lt;p&gt;&lt;script&gt;&lt;br /&gt;
var clique = false;&lt;br /&gt;
function getMessage() {&lt;/p&gt;
&lt;p&gt;var el = Ext.get(&#039;message&#039;);&lt;/p&gt;
&lt;p&gt;if (!clique) {&lt;br /&gt;
el.update(&#039;Texte 1 : BLA BLA BLA BLA 1&#039;);&lt;br /&gt;
clique = true;&lt;br /&gt;
} else {&lt;br /&gt;
el.update(&#039;Texte 2 : BLA BLA BLA 2&#039;);&lt;br /&gt;
clique = false;&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&lt;/script&gt;&lt;br /&gt;
&lt;/head&gt;&lt;/p&gt;
&lt;p&gt;&lt;body&gt;&lt;/p&gt;
&lt;p&gt;&lt;div id=&quot;message&quot;&gt;&lt;br /&gt;
Tilkc : Dans ce deuxieme exemple, a chaque clique sur le lien, le texte changera.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;a href=&quot;#&quot; onclick=&quot;getMessage();&quot;&gt;Update de la div =&gt; GO&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/body&gt;&lt;br /&gt;
&lt;/html&gt;&lt;br /&gt;
</pre>
</p>
<p><a href="http://media.waanser.com/2009/02/tutoupdatedivext2.zip">Ou téléchargez le package du deuxième exemple</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.waanser.com/javascript/extjs/816-update-div-ext-js.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

