
<?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; user-friendly</title>
	<atom:link href="http://www.waanser.com/tag/user-friendly/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>
		<item>
		<title>ExtJs Slide Ultra Simple</title>
		<link>http://www.waanser.com/javascript/extjs/248-extjs-slide-ultra-simple.html</link>
		<comments>http://www.waanser.com/javascript/extjs/248-extjs-slide-ultra-simple.html#comments</comments>
		<pubDate>Fri, 30 Jan 2009 16:29:47 +0000</pubDate>
		<dc:creator>tilkc</dc:creator>
				<category><![CDATA[Ext JS]]></category>
		<category><![CDATA[dynamique]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Slide]]></category>
		<category><![CDATA[SlideIn]]></category>
		<category><![CDATA[SlideOut]]></category>
		<category><![CDATA[user-friendly]]></category>
		<category><![CDATA[WEB 2.0]]></category>

		<guid isPermaLink="false">http://www.waanser.com/?p=248</guid>
		<description><![CDATA[Installation, Téléchargement Voila nous allons nous attaquer au slide sur Extjs. On commence, allez c&#8217;est parti 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 pour les fainéants le super package déjà tous prêt. On va créer [...]]]></description>
			<content:encoded><![CDATA[<h2>Installation, Téléchargement</h2>
<p>Voila nous allons nous attaquer au slide sur Extjs.</p>
<p>On commence, allez c&#8217;est parti <img src='http://www.waanser.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  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</p>
<p><img src="http://media.waanser.com/2009/01/arbo_extjs_slide.jpg" alt="Arborescence ExtJS Slide : www.waanser.com" /><br />
ou pour les fainéants <img src='http://www.waanser.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  <a href="http://media.waanser.com/2009/01/tutoslideext1.zip">le super package</a> déjà tous prêt. <img src='http://www.waanser.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>On va créer une div avec l&#8217;id &laquo;&nbsp;slide&nbsp;&raquo; et la rendre invisible par un style css.</p>
<p>La fonction slideIn de Ext va rendre visible cette div, mais avec un effet de déroulement.<br />
Voici le code:</p>
<h2>Exemple : SlideIn</h2>
<pre class="brush: html">
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;.: www.Waanser.com :.  Slide avec ExtJs&lt;/title&gt;
&lt;script src=&quot;ext/adapter/ext/ext-base.js&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;ext/ext-core-debug.js&quot;&gt;&lt;/script&gt;

&lt;script&gt;
function getSlide() {

Ext.get(&quot;slide&quot;).slideIn(&#039;t&#039;,
{
duration: .5,
remove: false,
useDisplay: true,
});
}
&lt;/script&gt;
&lt;/head&gt;

&lt;body&gt;
&lt;div id=&quot;slide&quot; style=&quot;color=red; visibility:hidden; display:none;&quot;&gt;
salut
&lt;/div&gt;
&lt;a href =&quot;#&quot; onclick=&quot;getSlide();&quot;&gt;Slide avec ExtJs&lt;/a&gt;
&lt;/body&gt;

&lt;/html&gt;
</pre>
<p>Plutôt simple non? <img src='http://www.waanser.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  mais<br />
voilà c&#8217;est fini,<br />
On a tant ressassé les mêmes théories<br />
On a tellement tiré chacun de nôtre côté<br />
Que voilà c&#8217;est fini, euh hum, non je vous donne un dernier exemple pour ouvrir et fermer la div, parce que vous allez pas le croire, il y a la fonction SlideOut <img src='http://www.waanser.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   NON et<br />
bien SI.</p>
<h2>Exemple : SlideOut</h2>
<pre class="brush: html">
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;.: www.Waanser.com :.  Slide avec ExtJs&lt;/title&gt;
&lt;script src=&quot;ext/adapter/ext/ext-base.js&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;ext/ext-core-debug.js&quot;&gt;&lt;/script&gt;

&lt;script&gt;
var clique = false;
function getSlide() {

if( !clique) {

Ext.get(&quot;slide&quot;).slideIn(&#039;t&#039;,
{
duration: .5,
remove: false,
useDisplay: true,
});
clique = true;

} else{

if (clique) {

Ext.get(&quot;slide&quot;).slideOut(&#039;t&#039;,
{
duration: .5,
remove: false,
useDisplay: true,
});
clique = false;
}

}

}
&lt;/script&gt;
&lt;/head&gt;

&lt;body&gt;
&lt;div id=&quot;slide&quot; style=&quot;color=red; visibility:hidden; display:none;&quot;&gt;
La fonction SlideIn de ExtJs, vient de rendre visible notre div,
il y a plein de paramètres, par exemple rendre l&#039;effet de déroulement plus ou moins lent.
&lt;a href=&quot;http://extjs.com/deploy/dev/docs/&quot; target=&quot;_blank&quot;&gt;Voir ici la documentation c&#039;est en anglais en plus, alors c&#039;est super allez-y !&lt;/a&gt;
&lt;/div&gt;
&lt;a href =&quot;#&quot; onclick=&quot;getSlide();&quot;&gt;Slide avec ExtJs&lt;/a&gt;
&lt;/body&gt;

&lt;/html&gt;
</pre>
<p>bon pour les fainéants, <img src='http://www.waanser.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   <a href="http://media.waanser.com/2009/01/tutoslideext2.zip">c&#8217;est par ici.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.waanser.com/javascript/extjs/248-extjs-slide-ultra-simple.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>script.aculo.us. drag and drop</title>
		<link>http://www.waanser.com/javascript/general-js/542-scriptaculous-drag-and-drop.html</link>
		<comments>http://www.waanser.com/javascript/general-js/542-scriptaculous-drag-and-drop.html#comments</comments>
		<pubDate>Thu, 22 Jan 2009 17:06:21 +0000</pubDate>
		<dc:creator>roul</dc:creator>
				<category><![CDATA[Général]]></category>
		<category><![CDATA[dynamique]]></category>
		<category><![CDATA[user-friendly]]></category>
		<category><![CDATA[WEB 2.0]]></category>

		<guid isPermaLink="false">http://www.waanser.com/?p=542</guid>
		<description><![CDATA[Le framework script.aculo.us. est très utile pour rendre vos applications user-friendly. Nous allons apprendre à utiliser le drag and drop. Mise en place de script.aculo.us. Voici les étapes nécessaires pour la mise en place du framework script.aculo.us Téléchargement Création de l&#8217;arborescence Téléchargement script.aculo.us Nous allons commencer par télécharger la librairie script.aculo.us sur le site officiel. [...]]]></description>
			<content:encoded><![CDATA[<p>Le framework script.aculo.us. est très utile pour rendre vos applications user-friendly.<br />
Nous allons apprendre à utiliser le drag and drop.<br />
<br/></p>
<h2>Mise en place de script.aculo.us.</h2>
<p>Voici les étapes nécessaires pour la mise en place du framework script.aculo.us</p>
<ol>
<li>Téléchargement</li>
<li>Création de l&#8217;arborescence</li>
</ol>
<h2>Téléchargement script.aculo.us</h2>
<p>Nous allons commencer par télécharger la librairie script.aculo.us sur le <a href="http://script.aculo.us/dist/scriptaculous-js-1.8.2.zip">site officiel</a>.</p>
<div id="attachment_544" class="wp-caption alignnone" style="width: 221px"><img src="http://media.waanser.com/2009/01/script-aculo-us.png" alt="librairie script.aculo.us " title="script-aculo-us" width="211" height="39" class="size-full wp-image-544" /><p class="wp-caption-text">librairie script.aculo.us </p></div>
<h2>Création de l&#8217;arborescence</h2>
<p>Pas de prise de tête, on va faire une arborescence très simple.<br />
On va décompresser la librairie script.aculo.us. et copier les dossier lib et src pour les mettre dans la racine<br />
de notre dossier dragNdrop. Et on va créer notre dossier image, où seront stockées les images à manipuler.</p>
<p><img src="http://media.waanser.com/2009/01/script-aculo-us2.png" alt="arboresence script.aculo.us" title="script-aculo-us2" class="alignnone size-full wp-image-550" /></p>
<p>Comme je suis sympa, je vous ai préparé <a href="http://media.waanser.com/2009/01/dragndrop.rar">l&#8217;arborescence</a>. <img src='http://www.waanser.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h2>Fonctionnement du Drag And Drop</h2>
<p>Le fonctionnement du Drag And Drop se divise en 4 étapes.</p>
<p>La première partie, c&#8217;est de définir nos conteneurs que l&#8217;on va manipuler.<br />
Pour ceci on va utiliser la balise <strong>&lt;div&gt;</strong>.</p>
<p>Après nous allons définir les dimensions de nos conteneurs en utilisant le <strong>css</strong>.</p>
<p>C&#8217;est dans cette 3ème étape que nous allons faire appel à notre framework script.aculo.us. par le biais<br />
de fonctions <strong>javascript</strong>.</p>
<p>Enfin nous feront appel à ces fonctions JS en utilisant <strong>onload</strong>, <strong>onmousedown</strong> et <strong>onmouseup</strong>.</p>
<h2>Création de nos conteneurs</h2>
<p>Nous allons créer notre fichier index.html.</p>
<p>Nous allons créer un premier conteneur que l&#8217;on va appeler <em>plateau</em>.<br />
Dans celui-ci deux autres conteneurs (<em>boite1</em> et <em>boite2</em>) seront créés. </p>
<pre class="brush: html">
&lt;body&gt;
&lt;div id=&quot;plateau&quot;&gt;
	&lt;div id=&quot;boite1&quot;&gt;
		&lt;img id=&quot;image1&quot; src=&quot;./image/1.png&quot; /&gt;
	&lt;/div&gt;
	&lt;div id=&quot;boite2&quot;&gt;
		&lt;img id=&quot;image2&quot; src=&quot;./image/2.png&quot; /&gt;
	&lt;/div&gt;
&lt;/div&gt;
&lt;/body&gt;
</pre>
<p>Le résultat :</p>
<div id="attachment_563" class="wp-caption alignnone" style="width: 144px"><a href="http://media.waanser.com/2009/01/ex0.png"><img src="http://media.waanser.com/2009/01/ex0.png" alt="exemple script.aculo.us." title="ex0" width="134" height="200" class="size-full wp-image-563" /></a><p class="wp-caption-text">exemple script.aculo.us.</p></div>
<h2>Définitions des dimensions de nos boîtes</h2>
<p>Bon beh la, ce n&#8217;est pas compliqué c&#8217;est du css tout basic. <img src='http://www.waanser.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<pre class="brush: html">
&lt;head&gt;
&lt;style type=&quot;text/css&quot;&gt;
	#boite1 {
		border: 1px solid #000000;
		width: 116px;
		height: 97px;
		padding: 5px;
		margin-left: 10px;
		margin-bottom: 10px;
		float: left;
	}
	#boite2 {
		border: 1px solid #000000;
		width: 116px;
		height: 97px;
		padding: 5px;
		margin-left: 10px;
		margin-bottom: 10px;
		float: left;
	}
	#plateau {
		width: 1024px;
		height: 500px;
		border: 0px solid #FF0000;
	}
&lt;/style&gt;
&lt;/head&gt;
</pre>
<p>Cela rend déjà mieux <img src='http://www.waanser.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  :</p>
<div id="attachment_565" class="wp-caption alignnone" style="width: 293px"><a href="http://media.waanser.com/2009/01/ex1.png"><img src="http://media.waanser.com/2009/01/ex1.png" alt="exemple script.aculo.us." title="ex1" width="283" height="118" class="size-full wp-image-565" /></a><p class="wp-caption-text">exemple script.aculo.us.</p></div>
<h2>Les fonctions javascripts</h2>
<p>On va faire appel au framework script.aculo.us.</p>
<pre class="brush: html">
&lt;script src=&quot;./lib/prototype.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;./src/effects.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;./src/dragdrop.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</pre>
<p>On va créer nos fonctions javascripts.</p>
<p>Cette fonction change le style de la bordure de notre boîte (en pointillé).</p>
<pre class="brush: javascript">
function cache ( id ) {
	id.style.border = &#039;1px dashed #000000&#039;;
}
</pre>
<p>Et celle-ci rend la bordure de la boîte continu.</p>
<pre class="brush: javascript">
function cache ( id ) {
	id.style.border = &#039;1px solid #000000&#039;;
}
</pre>
<p>Et la fonction la plus importante ; celle qui définit les boites à déplacer.</p>
<p><strong>new Draggable</strong> : définit la boite à manipuler.<br />
<strong>Sortable.create</strong> : définit le plateau où les boites pourront se déplacer.</p>
<pre class="brush: javascript">
var drag1;
var drag2;

function init () {
	drag1 = new Draggable(&#039;boite1&#039;, {ghosting: true});
	drag2 = new Draggable(&#039;boite2&#039;, {ghosting: true});
	Sortable.create(&#039;plateau&#039;,{
					tag:&#039;div&#039;,
					overlap:&#039;horizontal&#039;,
					ghosting: true,
					constraint: false
					});
}
</pre>
<h2>Appel de nos fonctions JS</h2>
<p>Pour préparer le plateau il suffit d&#8217;utiliser l&#8217;attribut <strong>onload</strong> qui fera appel à notre fonction <strong>init()</strong>.</p>
<p>Et pour faire l&#8217;effet de transparence, il faut utiliser l&#8217;attribut <strong>onmousedown </strong> et <strong>onmouseup</strong>.</p>
<pre class="brush: html">
&lt;body onload=&quot;init()&quot;&gt;
&lt;div id=&quot;plateau&quot;&gt;
	&lt;div id=&quot;boite1&quot;&gt;
		&lt;img id=&quot;image1&quot;  src=&quot;./image/1.png&quot; onmousedown=&quot;cache(this);&quot; onmouseup=&quot;affiche(this);&quot;/&gt;
	&lt;/div&gt;
	&lt;div id=&quot;boite2&quot;&gt;
		&lt;img id=&quot;image2&quot; src=&quot;./image/2.png&quot; onmousedown=&quot;cache(this);&quot; onmouseup=&quot;affiche (this);&quot;/&gt;
	&lt;/div&gt;
&lt;/div&gt;
&lt;/body&gt;
</pre>
<p>Et voila c&#8217;est fini <img src='http://www.waanser.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Voila le code source <a href="http://media.waanser.com/2009/01/dragndrop1.rar">complet</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.waanser.com/javascript/general-js/542-scriptaculous-drag-and-drop.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
