<?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>jQuery Archives - Copier coller</title>
	<atom:link href="https://www.copier-coller.com/jquery/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.copier-coller.com/jquery/</link>
	<description>Des tutos wordpress pour les nuls !!!</description>
	<lastBuildDate>Fri, 16 Apr 2021 18:50:36 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.1.7</generator>

<image>
	<url>https://www.copier-coller.com/wp-content/uploads/2018/03/cropped-copier-coller_06_favicon-32x32.png</url>
	<title>jQuery Archives - Copier coller</title>
	<link>https://www.copier-coller.com/jquery/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Comment modifier dynamiquement les couleurs dans un champs textarea</title>
		<link>https://www.copier-coller.com/comment-modifier-dynamiquement-les-couleurs-dans-un-champs-textarea/</link>
					<comments>https://www.copier-coller.com/comment-modifier-dynamiquement-les-couleurs-dans-un-champs-textarea/#comments</comments>
		
		<dc:creator><![CDATA[copier coller]]></dc:creator>
		<pubDate>Fri, 16 Apr 2021 18:38:49 +0000</pubDate>
				<category><![CDATA[jQuery]]></category>
		<guid isPermaLink="false">https://www.copier-coller.com/?p=6268</guid>

					<description><![CDATA[<p>Vous avez un champ textarea vide (ou pas). De manière dynamique, grâce au js, vous injectez du code à l&#8217;intérieur de ce champs texte. Ce texte contient entre autre, des couleurs ou une couleur dominante pour les titres, les phrases en gras, les bordures, les couleurs d&#8217;arrière plan etc. Vous souhaiteriez, par l&#8217;intermédiaire de boutons, [...]</p>
<p>The post <a rel="nofollow" href="https://www.copier-coller.com/comment-modifier-dynamiquement-les-couleurs-dans-un-champs-textarea/">Comment modifier dynamiquement les couleurs dans un champs textarea</a> appeared first on <a rel="nofollow" href="https://www.copier-coller.com">Copier coller</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Comment modifier dynamiquement des élements à l&rsquo;intérieur d&rsquo;un champ textarea ?</h2>
<p>Vous avez un champ textarea vide (ou pas). De manière dynamique, grâce au js, vous injectez du code à l&rsquo;intérieur de ce champs texte. Ce texte contient entre autre, des couleurs ou une couleur dominante pour les titres, les phrases en gras, les bordures, les couleurs d&rsquo;arrière plan etc. Vous souhaiteriez, par l&rsquo;intermédiaire de boutons, modifier les codes couleurs contenus dans le code : voici une solution.</p>
<h3>La partie html</h3>
<p>Commencez par définir vos boutons puis votre champ texte:</p>
<div class="code-embed-wrapper"> <pre class="language-markup code-embed-pre"  data-start="1" data-line-offset="0"><code class="language-markup code-embed-code">&lt;div class=&quot;button-row&quot;&gt;<br/>	&lt;button type=&quot;button&quot; class=&quot;change product--color-a&quot; id=&quot;productA&quot; data-color=&quot;#525ca3&quot;&gt;product A&lt;/button&gt;<br/>	&lt;button type=&quot;button&quot; class=&quot;change product--color-b&quot; id=&quot;productB&quot; data-color=&quot;#633bb0&quot;&gt;product B&lt;/button&gt;<br/>	&lt;button type=&quot;button&quot; class=&quot;change product--color-c&quot; id=&quot;productC&quot; data-color=&quot;#31B7BC&quot;&gt;product C&lt;/button&gt;<br/>	&lt;button type=&quot;button&quot; class=&quot;change product--color-d&quot; id=&quot;productD&quot; data-color=&quot;#4EAB8E&quot;&gt;product D&lt;/button&gt;<br/>	&lt;button type=&quot;button&quot; class=&quot;change product--color-e&quot; id=&quot;productE&quot; data-color=&quot;#ff4c00&quot;&gt;product E&lt;/button&gt;<br/>	&lt;button type=&quot;button&quot; class=&quot;change product--color-f&quot; id=&quot;productF&quot; data-color=&quot;#61b09d&quot;&gt;product F&lt;/button&gt;<br/>	&lt;button type=&quot;button&quot; class=&quot;change product--color-g&quot; id=&quot;productG&quot; data-color=&quot;#64A70B&quot;&gt;product G&lt;/button&gt;<br/>	&lt;button type=&quot;button&quot; class=&quot;change product--color-h&quot; id=&quot;productH&quot; data-color=&quot;#00cbf9&quot;&gt;product H&lt;/button&gt;<br/>&lt;/div&gt;<br/><br/>&lt;fieldset&gt;<br/>	&lt;label for=&quot;final-code&quot; aria-hidden=&quot;true&quot;&gt;&lt;/label&gt;<br/>	&lt;textarea id=&quot;final-code&quot; name=&quot;message&quot;&gt;&lt;/textarea&gt;<br/>&lt;/fieldset&gt;</code></pre> <div class="code-embed-infos"> </div> </div>
<p>on définit ici un attribut <em>data-color</em> par bouton. On définit un set de couleur pour tous les « produits » (ou n&rsquo;importe quel autre objet). Chaque bouton correspond à un produit, une marque et représente une couleur. La couleur dominante dans le champs textarea figure elle aussi dans l&rsquo;attribut data-color d&rsquo;un bouton. Ca c&rsquo;est pour pouvoir revenir à la couleur initiale.</p>
<h3>Intéragir avec le champ texte</h3>
<p>Grâce au js on va procéder de la manière suivante :<br />
On insère tous nos codes couleurs dans une variable « <em>color</em>« .<br />
Au clic sur le bouton :</p>
<ul>
<li>on définit dans une variable « <em>colour</em> »  la couleur de l&rsquo;élément cliqué</li>
<li>on définit dans une variable « <em>textarea</em> » notre champ texte</li>
<li>on définit la taille de notre tableau de couleur</li>
</ul>
<p>on boucle :</p>
<ul>
<li>pour chaque couleur contenue dans le tableau</li>
<li>si une couleur du champ textarea correspond à l&rsquo;une des couleurs de notre tableau</li>
<li>on remplace cette couleur par le data-color du bouton cliqué.</li>
</ul>
<div class="code-embed-wrapper"> <pre class="language-javascript code-embed-pre"  data-start="1" data-line-offset="0"><code class="language-javascript code-embed-code"> var color =[&quot;#64A70B&quot;,&quot;#525ca3&quot;,&quot;#633bb0&quot;,&quot;#ff4c00&quot;,&quot;#61b09d&quot;,&quot;#00cbf9&quot;,&quot;#31B7BC&quot;,&quot;#4EAB8E&quot;];<br/> $(&quot;.change&quot;).click(function() { <br/>  var colour = $(this).data(&quot;color&quot;);<br/>  var textarea = $(&#039;#final-code&#039;);<br/>  var len = color.length;<br/>  for (i=0; i &lt; len; i++) {<br/>   textarea.html(textarea.html().replaceAll(color[i], colour)); <br/> }  <br/>});</code></pre> <div class="code-embed-infos"> </div> </div>
<p>The post <a rel="nofollow" href="https://www.copier-coller.com/comment-modifier-dynamiquement-les-couleurs-dans-un-champs-textarea/">Comment modifier dynamiquement les couleurs dans un champs textarea</a> appeared first on <a rel="nofollow" href="https://www.copier-coller.com">Copier coller</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.copier-coller.com/comment-modifier-dynamiquement-les-couleurs-dans-un-champs-textarea/feed/</wfw:commentRss>
			<slash:comments>100</slash:comments>
		
		
			</item>
		<item>
		<title>Créer un effet parallaxe grâce à jQuery</title>
		<link>https://www.copier-coller.com/creer-un-effet-parallaxe-grace-a-jquery/</link>
					<comments>https://www.copier-coller.com/creer-un-effet-parallaxe-grace-a-jquery/#comments</comments>
		
		<dc:creator><![CDATA[copier coller]]></dc:creator>
		<pubDate>Sun, 11 Apr 2021 02:31:09 +0000</pubDate>
				<category><![CDATA[jQuery]]></category>
		<guid isPermaLink="false">https://www.copier-coller.com/?p=6265</guid>

					<description><![CDATA[<p>Après avoir longtemps cherché une solution simple pour créer un effet parallaxe sur plusieurs éléments en simultané, j&#8217;avais finalement laissé tomber : créer un parallaxe « statique » est assez simple, par contre faire en sorte qu&#8217;au scroll chaque élément d&#8217;une page se déplace différement, c&#8217;est un peu plus compliqué..La plupart des solutions impliquent à la fois [...]</p>
<p>The post <a rel="nofollow" href="https://www.copier-coller.com/creer-un-effet-parallaxe-grace-a-jquery/">Créer un effet parallaxe grâce à jQuery</a> appeared first on <a rel="nofollow" href="https://www.copier-coller.com">Copier coller</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Comment créer un effet de parallaxe sur les éléments d&rsquo;une page ?</h2>
<p>Après avoir longtemps cherché une solution simple pour créer un effet parallaxe sur plusieurs éléments en simultané, j&rsquo;avais finalement laissé tomber : créer un parallaxe « statique » est assez simple, par contre faire en sorte qu&rsquo;au scroll chaque élément d&rsquo;une page se déplace différement, c&rsquo;est un peu plus compliqué..La plupart des solutions impliquent à la fois des tonnes de css, ou l&rsquo;utilisation combinée du css et jquery mais de manière assez compliquée.</p>
<p>Finalement, j&rsquo;ai trouvé sur codePen une fonction js assez simple à comprendre qui prend en paramètre un seul élément de la page, c&rsquo;est l&rsquo;attribut <em>data-scroll-speed</em> qu&rsquo;on va ajouter sur nos élements.  Si vous avez une liste d&rsquo;éléments sur la page, il suffit d&rsquo;incrémenter chaque valeur : <em>data-scroll-speed=1</em>, <em>data-scroll-speed=2</em> etc , et la fonction js fait le reste. Chaque élement va se déplacer au scroll en fonction de son <em>data-scroll-speed</em> !</p>
<p>Voici un exemple fait à la va vite pour tester cette fonction. J&rsquo;ai mis le lien du codepen original dans le code.</p>
<p class="codepen" style="height: 300px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;" data-height="300" data-theme-id="10187" data-default-tab="css,result" data-user="yuyazz" data-slug-hash="vYXozqY" data-preview="true" data-pen-title="Parallax objects jquery">See the Pen <a href="https://codepen.io/yuyazz/pen/vYXozqY"><br />
Parallax objects jquery</a> by blindDev (<a href="https://codepen.io/yuyazz">@yuyazz</a>)<br />
on <a href="https://codepen.io">CodePen</a>.</p>
<p><script async src="https://cpwebassets.codepen.io/assets/embed/ei.js"></script></p>
<p>The post <a rel="nofollow" href="https://www.copier-coller.com/creer-un-effet-parallaxe-grace-a-jquery/">Créer un effet parallaxe grâce à jQuery</a> appeared first on <a rel="nofollow" href="https://www.copier-coller.com">Copier coller</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.copier-coller.com/creer-un-effet-parallaxe-grace-a-jquery/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title>Créer un accordéon en css jQuery</title>
		<link>https://www.copier-coller.com/creer-un-accordeon-en-css-jquery/</link>
					<comments>https://www.copier-coller.com/creer-un-accordeon-en-css-jquery/#comments</comments>
		
		<dc:creator><![CDATA[copier coller]]></dc:creator>
		<pubDate>Sun, 11 Apr 2021 02:07:53 +0000</pubDate>
				<category><![CDATA[jQuery]]></category>
		<guid isPermaLink="false">https://www.copier-coller.com/?p=6259</guid>

					<description><![CDATA[<p>Voici un exemple de code pour obtenir un accordéon. Les panels de chaque accordéon sont en display:none par défaut. Grâce au jQuery les simples fonctions slideDown(), slideUp() vont nous permettre de révéler le contenu. Dans l&#8217;un des accordéons, on insère une image minature. Au clic sur cette image, une popup s&#8217;ouvre pour voir l&#8217;image agrandie. [...]</p>
<p>The post <a rel="nofollow" href="https://www.copier-coller.com/creer-un-accordeon-en-css-jquery/">Créer un accordéon en css jQuery</a> appeared first on <a rel="nofollow" href="https://www.copier-coller.com">Copier coller</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Comment créer un accordéon simple grâce à jQuery et css</h2>
<p>Voici un exemple de code pour obtenir un accordéon. Les panels de chaque accordéon sont en <em>display:none</em> par défaut. Grâce au jQuery les simples fonctions <em>slideDown()</em>,<em> slideUp()</em> vont nous permettre de révéler le contenu. Dans l&rsquo;un des accordéons, on insère une image minature. Au clic sur cette image, une popup s&rsquo;ouvre pour voir l&rsquo;image agrandie. Ici on joue avec la propriété transform:scale pour donner un effet de zoom à l&rsquo;image.</p>
<p class="codepen" style="height: 300px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;" data-height="300" data-theme-id="10187" data-default-tab="html,result" data-user="yuyazz" data-slug-hash="MWJrzap" data-pen-title="Accordion CSS/jQuery">See the Pen <a href="https://codepen.io/yuyazz/pen/MWJrzap"><br />
Accordion CSS/jQuery</a> by blindDev (<a href="https://codepen.io/yuyazz">@yuyazz</a>)<br />
on <a href="https://codepen.io">CodePen</a>.</p>
<p><script async src="https://cpwebassets.codepen.io/assets/embed/ei.js"></script></p>
<p>The post <a rel="nofollow" href="https://www.copier-coller.com/creer-un-accordeon-en-css-jquery/">Créer un accordéon en css jQuery</a> appeared first on <a rel="nofollow" href="https://www.copier-coller.com">Copier coller</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.copier-coller.com/creer-un-accordeon-en-css-jquery/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Une carte dynamique Mapael.js avec jquery.connection.js</title>
		<link>https://www.copier-coller.com/une-carte-dynamique-mapael-js-avec-avec-jquery-connection-js/</link>
					<comments>https://www.copier-coller.com/une-carte-dynamique-mapael-js-avec-avec-jquery-connection-js/#comments</comments>
		
		<dc:creator><![CDATA[copier coller]]></dc:creator>
		<pubDate>Sat, 10 Apr 2021 17:59:17 +0000</pubDate>
				<category><![CDATA[jQuery]]></category>
		<guid isPermaLink="false">https://www.copier-coller.com/?p=6245</guid>

					<description><![CDATA[<p>&#160; Ayant déjà fait un tuto sur la manière dont on peut implémenter une carte avec Mapael.js, ici je vais juste montrer, à travers un codePen, comment afficher ses tooltips au survol sur les markers. J&#8217;utilise ici le plugin jquery.connections.js, pour relier les markers à leur div respective. Plutôt que des mots, voici le code [...]</p>
<p>The post <a rel="nofollow" href="https://www.copier-coller.com/une-carte-dynamique-mapael-js-avec-avec-jquery-connection-js/">Une carte dynamique Mapael.js avec jquery.connection.js</a> appeared first on <a rel="nofollow" href="https://www.copier-coller.com">Copier coller</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Comment créer un effet de survol sur une carte Mapael.js</h2>
<p>&nbsp;</p>
<p>Ayant déjà fait un tuto sur la manière dont on peut <a href="https://www.copier-coller.com/creer-des-cartes-responsive-avec-mapael-js/">implémenter une carte avec Mapael.js,</a> ici je vais juste montrer, à travers un codePen, comment afficher ses tooltips au survol sur les markers. J&rsquo;utilise ici le plugin jquery.connections.js, pour relier les markers à leur div respective.</p>
<p>Plutôt que des mots, voici le code et le rendu. Passez l&rsquo;éditeur en 0.5 ou allez visionner ça dans CodePen directement.</p>
<p class="codepen" style="height: 300px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;" data-height="300" data-theme-id="10187" data-default-tab="js,result" data-user="yuyazz" data-slug-hash="PoNdzao" data-preview="true" data-pen-title="Mapael Interactive hover map">See the Pen <a href="https://codepen.io/yuyazz/pen/PoNdzao"><br />
Mapael Interactive hover map</a> by blindDev (<a href="https://codepen.io/yuyazz">@yuyazz</a>)<br />
on <a href="https://codepen.io">CodePen</a>.</p>
<p><script async src="https://cpwebassets.codepen.io/assets/embed/ei.js"></script></p>
<p>Et voici la version statique, sans effet de survol</p>
<p class="codepen" data-height="300" data-theme-id="10187" data-default-tab="js,result" data-user="yuyazz" data-slug-hash="JjXaYGp" data-preview="true" style="height: 300px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;" data-pen-title="Interactive Mapael Map with connections">
  <span>See the Pen <a href="https://codepen.io/yuyazz/pen/JjXaYGp"><br />
  Interactive Mapael Map with connections</a> by blindDev (<a href="https://codepen.io/yuyazz">@yuyazz</a>)<br />
  on <a href="https://codepen.io">CodePen</a>.</span>
</p>
<p><script async src="https://cpwebassets.codepen.io/assets/embed/ei.js"></script></p>
<p>The post <a rel="nofollow" href="https://www.copier-coller.com/une-carte-dynamique-mapael-js-avec-avec-jquery-connection-js/">Une carte dynamique Mapael.js avec jquery.connection.js</a> appeared first on <a rel="nofollow" href="https://www.copier-coller.com">Copier coller</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.copier-coller.com/une-carte-dynamique-mapael-js-avec-avec-jquery-connection-js/feed/</wfw:commentRss>
			<slash:comments>9</slash:comments>
		
		
			</item>
		<item>
		<title>Créer une Step Progress Bar</title>
		<link>https://www.copier-coller.com/creer-une-step-progress-bar/</link>
					<comments>https://www.copier-coller.com/creer-une-step-progress-bar/#respond</comments>
		
		<dc:creator><![CDATA[copier coller]]></dc:creator>
		<pubDate>Sat, 10 Apr 2021 17:26:08 +0000</pubDate>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[jQuery]]></category>
		<guid isPermaLink="false">https://www.copier-coller.com/?p=6243</guid>

					<description><![CDATA[<p>Ce genre de design est surtout visible sur les sites e-commerce ou les formulaires multi-étapes. On affiche des numéros, au clic sur un bouton on passe à l&#8217;étape suivante. Les numéros permettent de voir où l&#8217;on se situe. Voici donc un exemple simple, les numéros sont grisés par défaut (opacity;0.5) et au clic s&#8217;affichent à [...]</p>
<p>The post <a rel="nofollow" href="https://www.copier-coller.com/creer-une-step-progress-bar/">Créer une Step Progress Bar</a> appeared first on <a rel="nofollow" href="https://www.copier-coller.com">Copier coller</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Comment créer une « step progress bar » ou barre de progression par étape</h2>
<p>Ce genre de design est surtout visible sur les sites e-commerce ou les formulaires multi-étapes. On affiche des numéros, au clic sur un bouton on passe à l&rsquo;étape suivante. Les numéros permettent de voir où l&rsquo;on se situe.</p>
<h3>Une progression en 4 étapes</h3>
<p>Voici donc un exemple simple, les numéros sont grisés par défaut (opacity;0.5) et au clic s&rsquo;affichent à pleine opacité (opacity:1). Les div sont également cachées, positionnées en absolute, et la suivante remplace la précédente. Ici on peut passer de la 1ère à la dernière position et inversement.</p>
<p class="codepen" style="height: 300px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;" data-height="300" data-theme-id="10187" data-default-tab="css,result" data-user="yuyazz" data-slug-hash="oNxOREM" data-preview="true" data-pen-title="Tab list">See the Pen <a href="https://codepen.io/yuyazz/pen/oNxOREM"><br />
Tab list</a> by blindDev (<a href="https://codepen.io/yuyazz">@yuyazz</a>)<br />
on <a href="https://codepen.io">CodePen</a>.</p>
<p><script async src="https://cpwebassets.codepen.io/assets/embed/ei.js"></script></p>
<h3>Une progression en 3 étapes</h3>
<p>Et voici un exemple similaire en 3 étapes seulement</p>
<p class="codepen" style="height: 300px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;" data-height="300" data-theme-id="10187" data-default-tab="css,result" data-user="yuyazz" data-slug-hash="KKVmePo" data-preview="true" data-pen-title="Simple Jquery - Css Step Process">See the Pen <a href="https://codepen.io/yuyazz/pen/KKVmePo"><br />
Simple Jquery &#8211; Css Step Process</a> by blindDev (<a href="https://codepen.io/yuyazz">@yuyazz</a>)<br />
on <a href="https://codepen.io">CodePen</a>.</p>
<p><script async src="https://cpwebassets.codepen.io/assets/embed/ei.js"></script></p>
<p>The post <a rel="nofollow" href="https://www.copier-coller.com/creer-une-step-progress-bar/">Créer une Step Progress Bar</a> appeared first on <a rel="nofollow" href="https://www.copier-coller.com">Copier coller</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.copier-coller.com/creer-une-step-progress-bar/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Remplir des champs dynamiquement en js</title>
		<link>https://www.copier-coller.com/remplir-des-champs-dynamiquement-en-js/</link>
					<comments>https://www.copier-coller.com/remplir-des-champs-dynamiquement-en-js/#comments</comments>
		
		<dc:creator><![CDATA[copier coller]]></dc:creator>
		<pubDate>Sat, 10 Apr 2021 16:43:51 +0000</pubDate>
				<category><![CDATA[jQuery]]></category>
		<guid isPermaLink="false">https://www.copier-coller.com/?p=6241</guid>

					<description><![CDATA[<p>Il est parfois nécessaire d&#8217;afficher les options de ses menus déroulants de manière dynamiques : on selectionne une option dans un premier champ, cela affiche des données A dans le second champ. On sélectionne une autre option, cela affiche les données B, et ainsi de suite. Voici un exemple simple qui reprend ce principe : [...]</p>
<p>The post <a rel="nofollow" href="https://www.copier-coller.com/remplir-des-champs-dynamiquement-en-js/">Remplir des champs dynamiquement en js</a> appeared first on <a rel="nofollow" href="https://www.copier-coller.com">Copier coller</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Comment créer les options d&rsquo;un champ select de manière dynamique ?</h2>
<p>Il est parfois nécessaire d&rsquo;afficher les options de ses menus déroulants de manière dynamiques : on selectionne une option dans un premier champ, cela affiche des données A dans le second champ. On sélectionne une autre option, cela affiche les données B, et ainsi de suite.</p>
<p>Voici un exemple simple qui reprend ce principe :</p>
<p class="codepen" style="height: 300px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;" data-height="300" data-theme-id="10187" data-default-tab="js,result" data-user="yuyazz" data-slug-hash="zYKQqXo" data-preview="true" data-pen-title=" Fill a Dropdown Dynamically jQuery">See the Pen <a href="https://codepen.io/yuyazz/pen/zYKQqXo"><br />
Fill a Dropdown Dynamically jQuery</a> by blindDev (<a href="https://codepen.io/yuyazz">@yuyazz</a>)<br />
on <a href="https://codepen.io">CodePen</a>.</p>
<p><script async src="https://cpwebassets.codepen.io/assets/embed/ei.js"></script></p>
<p>Vous trouverez un autre exemple tout simple dans <a href="https://www.copier-coller.com/liste-deroulante-multiple-dynamique/">un autre article</a>.</p>
<p>The post <a rel="nofollow" href="https://www.copier-coller.com/remplir-des-champs-dynamiquement-en-js/">Remplir des champs dynamiquement en js</a> appeared first on <a rel="nofollow" href="https://www.copier-coller.com">Copier coller</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.copier-coller.com/remplir-des-champs-dynamiquement-en-js/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Créer des animations avec AOS</title>
		<link>https://www.copier-coller.com/creer-des-animations-avec-aos/</link>
					<comments>https://www.copier-coller.com/creer-des-animations-avec-aos/#comments</comments>
		
		<dc:creator><![CDATA[copier coller]]></dc:creator>
		<pubDate>Sat, 10 Apr 2021 15:37:17 +0000</pubDate>
				<category><![CDATA[jQuery]]></category>
		<guid isPermaLink="false">https://www.copier-coller.com/?p=6234</guid>

					<description><![CDATA[<p>J&#8217;avais déjà rédigé un mini tuto pour créer des animations avec wow.js et animate.css. Aujourd&#8217;hui on va voir comment faire la même chose avec AOS, plus facile d&#8217;utilisation. C&#8217;est une librairie js qui permet d&#8217;appliquer tout type d&#8217;animation css au scroll, sur n&#8217;importe quel type de balise html. Dans le header de votre page, placez [...]</p>
<p>The post <a rel="nofollow" href="https://www.copier-coller.com/creer-des-animations-avec-aos/">Créer des animations avec AOS</a> appeared first on <a rel="nofollow" href="https://www.copier-coller.com">Copier coller</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Comment créer des animations avec AOS</h2>
<p>J&rsquo;avais déjà rédigé un <a href="https://www.copier-coller.com/creer-des-animations-avec-animate-et-wow/">mini tuto pour créer des animations avec wow.js et animate.css.</a> Aujourd&rsquo;hui on va voir comment faire la même chose avec <a href="https://michalsnik.github.io/aos/">AOS</a>, plus facile d&rsquo;utilisation. C&rsquo;est une librairie js qui permet d&rsquo;appliquer tout type d&rsquo;animation css au scroll, sur n&rsquo;importe quel type de balise html.</p>
<h3>L&rsquo;appel des scripts</h3>
<p>Dans le header de votre page, placez l&rsquo;appel au script css.</p>
<div class="code-embed-wrapper"> <pre class="language-markup code-embed-pre"  data-start="1" data-line-offset="0"><code class="language-markup code-embed-code">&lt;link rel=&quot;stylesheet&quot; href=&quot;https://unpkg.com/aos@next/dist/aos.css&quot; /&gt;</code></pre> <div class="code-embed-infos"> </div> </div>
<p>Si ce n&rsquo;est pas fait, incluez jquery et bien sûr n&rsquo;oubliez pas ensuite d&rsquo;inclure également le js:</p>
<div class="code-embed-wrapper"> <pre class="language-markup code-embed-pre"  data-start="1" data-line-offset="0"><code class="language-markup code-embed-code"> &lt;script src=&quot;https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js&quot;&gt;&lt;/script&gt;<br/>   &lt;script src=&quot;https://unpkg.com/aos@next/dist/aos.js&quot;&gt;&lt;/script&gt;</code></pre> <div class="code-embed-infos"> </div> </div>
<h3>Activer le plugin</h3>
<p>Dans la même page entre des balises script, ou dans un fichier à part, on active le plugin avec ce bout de code:</p>
<div class="code-embed-wrapper"> <pre class="language-markup code-embed-pre"  data-start="1" data-line-offset="0"><code class="language-markup code-embed-code">&lt;script&gt;<br/>    AOS.init();<br/>  &lt;/script&gt;</code></pre> <div class="code-embed-infos"> </div> </div>
<h3>Si jamais ca bugue sur mobile&#8230;</h3>
<p>AOS semble buguer sur mobile, une solution consiste donc à annuler les animations sur petit écran. Voici le code</p>
<div class="code-embed-wrapper"> <pre class="language-markup code-embed-pre"  data-start="1" data-line-offset="0"><code class="language-markup code-embed-code">&lt;script&gt;<br/>      AOS.init({<br/>         disable: function() {<br/>            var maxWidth = 768;<br/>            return window.innerWidth &lt; maxWidth;<br/>         }<br/>      });<br/>   &lt;/script&gt;</code></pre> <div class="code-embed-infos"> </div> </div>
<h3>Les animations</h3>
<p>Ensuite dans la page, vous pouvez appliquer les animations sur n&rsquo;importe quel type de balise  avec l&rsquo;attribut data-aos= » » :</p>
<div class="code-embed-wrapper"> <pre class="language-markup code-embed-pre"  data-start="1" data-line-offset="0"><code class="language-markup code-embed-code">&lt;div data-aos=&quot;fade-in&quot;&gt;&lt;/div&gt;</code></pre> <div class="code-embed-infos"> </div> </div>
<p>Quelques options sont possibles :</p>
<div class="code-embed-wrapper"> <pre class="language-markup code-embed-pre"  data-start="1" data-line-offset="0"><code class="language-markup code-embed-code">  &lt;div<br/>    data-aos=&quot;fade-up&quot;<br/>    data-aos-offset=&quot;200&quot;<br/>    data-aos-delay=&quot;50&quot;<br/>    data-aos-duration=&quot;1000&quot;<br/>    data-aos-easing=&quot;ease-in-out&quot;<br/>    data-aos-mirror=&quot;true&quot;<br/>    data-aos-once=&quot;false&quot;<br/>    data-aos-anchor-placement=&quot;top-center&quot;<br/>  &gt;<br/>  &lt;/div&gt;</code></pre> <div class="code-embed-infos"> </div> </div>
<p>Retrouvez la <a href="https://github.com/michalsnik/aos#animations">liste complète des options.</a></p>
<p>Voilà c&rsquo;est à peu près tout ce qu&rsquo;il faut savoir pour lancer de belles animations sur ses pages.. Attention à ne pas trop en mettre, ca complique la lecture parfois.. Rendez vous sur le <a href="https://github.com/michalsnik/aos">github</a> pour en savoir plus, ou l&rsquo;<a href="https://css-tricks.com/aos-css-driven-scroll-animation-library/">article de l&rsquo;auteur sur css trciks</a>.</p>
<p>The post <a rel="nofollow" href="https://www.copier-coller.com/creer-des-animations-avec-aos/">Créer des animations avec AOS</a> appeared first on <a rel="nofollow" href="https://www.copier-coller.com">Copier coller</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.copier-coller.com/creer-des-animations-avec-aos/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>Créer un comparateur « drug checker » simplifié en js</title>
		<link>https://www.copier-coller.com/creer-un-comparateur-drug-checker-simplifie-en-js/</link>
					<comments>https://www.copier-coller.com/creer-un-comparateur-drug-checker-simplifie-en-js/#respond</comments>
		
		<dc:creator><![CDATA[copier coller]]></dc:creator>
		<pubDate>Sun, 20 Dec 2020 08:43:13 +0000</pubDate>
				<category><![CDATA[jQuery]]></category>
		<guid isPermaLink="false">https://www.copier-coller.com/?p=6211</guid>

					<description><![CDATA[<p>Le terme de comparateur est ici un peu trompeur, en fait l&#8217;idée est de donner à l&#8217;utilisateur la possibilité, à partir d&#8217;une page produit, de connaître les interactions avec d&#8217;autres produits.  On part donc du principe qu&#8217;on est déjà dans une page produit. Dans celle-ci, on va afficher un groupe de champ qui nous servira [...]</p>
<p>The post <a rel="nofollow" href="https://www.copier-coller.com/creer-un-comparateur-drug-checker-simplifie-en-js/">Créer un comparateur « drug checker » simplifié en js</a> appeared first on <a rel="nofollow" href="https://www.copier-coller.com">Copier coller</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Création d&rsquo;un comparateur de produits en js</h2>
<p>Le terme de comparateur est ici un peu trompeur, en fait l&rsquo;idée est de donner à l&rsquo;utilisateur la possibilité, à partir d&rsquo;une page produit, de connaître les interactions avec d&rsquo;autres produits.  On part donc du principe qu&rsquo;on est déjà dans une page produit. Dans celle-ci, on va afficher un groupe de champ qui nous servira de comparateur. Un premier champ select avec tous les produits à comparer. Selon la sélection de l&rsquo;utilisateur, on va afficher dans les champs suivants les informations correspondantes.</p>
<p>Voici le rendu de mon exemple :</p>
<p><img decoding="async" loading="lazy" class="alignnone size-full wp-image-6215" src="https://www.copier-coller.com/wp-content/uploads/2020/12/champ-dynamique.gif" alt="champ dynamique" width="886" height="531" /></p>
<p>On a donc un menu déroulant, puis trois cases vides. Dans le code, ce sont des div et non des input texte. En dehors du cadre central on affiche des « familles » de produits par couleur, puis des « catégories » par des picto. Ces éléments sont juste esthétiques. La div centrale « interactions » récupère plutôt des informations sous forme de texte.</p>
<p>Afin de pouvoir classifier ces informations on place notre liste de produits dans un fichier json.</p>
<p>Le but est donc que l&rsquo;utilisateur puisse, à partir d&rsquo;un produit de la liste, savoir à quelle famille il appartient, quelles sont ses interactions avec le produit principal de la page, puis ses spécificités.</p>
<h3>La construction de mon comparateur</h3>
<p>Voici mon html</p>
<div class="code-embed-wrapper"> <pre class="language-markup code-embed-pre"  data-start="1" data-line-offset="0"><code class="language-markup code-embed-code">&lt;div class=&quot;checker-inputs&quot;&gt;<br/>	&lt;div&gt;<br/>		&lt;label for=&quot;dci&quot; class=&quot;flex j-center a-center&quot;&gt;| DCI | &lt;/label&gt;<br/>		&lt;select id=&quot;dci&quot; name=&quot;dci&quot;&gt;&lt;/select&gt;<br/>	&lt;/div&gt;<br/>	&lt;div&gt;<br/>		&lt;label for=&quot;family&quot; class=&quot;flex j-center a-center&quot;&gt;| Famille|&lt;/label&gt;<br/>		&lt;div id=&quot;family&quot; class=&quot;&quot;&gt;<br/>			&lt;span class=&quot;color&quot;&gt;&lt;/span&gt;<br/>		&lt;/div&gt;<br/>	&lt;/div&gt;<br/>	&lt;div&gt;<br/>		&lt;label for=&quot;interactions&quot; class=&quot;flex j-center a-center&quot;&gt;| Interactions|&lt;/label&gt;<br/>		&lt;div id=&quot;interactions&quot; class=&quot;&quot;&gt;&lt;/div&gt;<br/>	&lt;/div&gt;<br/>	&lt;div&gt;<br/>		&lt;label for=&quot;cat&quot; class=&quot;flex j-center a-center&quot;&gt;| CAT**|&lt;/label&gt;<br/>		&lt;div id=&quot;cat&quot; class=&quot;&quot;&gt;<br/>			&lt;span class=&quot;icon&quot;&gt;&lt;/span&gt;<br/>		&lt;/div&gt;<br/>	&lt;/div&gt;<br/>&lt;/div&gt;</code></pre> <div class="code-embed-infos"> </div> </div>
<p>On a un premier champ select, le reste ce sont des div stylisées comme des input texte.</p>
<p><strong>Un fichier json</strong></p>
<p>Pour regrouper la liste d&rsquo;information, on pourrait tout à fait utiliser un fichier js, tout insérer dans une variable et travailler à partir de là. Ici j&rsquo;utilise plus simplement un fichier à part, en json. Le but sera ensuite de récupérer toutes ces informations via notre js, et de l&rsquo;insérer dans les différents champs.</p>
<p>Le fichier je l&rsquo;appelle « interaction.json » et se compose de la manière suivante :</p>
<div class="code-embed-wrapper"> <pre class="language-javascript code-embed-pre"  data-start="1" data-line-offset="0"><code class="language-javascript code-embed-code">[{<br/>       <br/>&quot;DCI&quot;: &quot;Antidépresseurs tricyliques&quot;,<br/>&quot;Famille&quot;: &quot;antidepresseurs&quot;,<br/>&quot;Interaction&quot;: &quot;Sub. du CYP2D6&quot;,<br/>&quot;CAT&quot;: &quot;diminuer&quot;<br/>},{       <br/>&quot;DCI&quot;: &quot;Amlodipine&quot;,<br/>&quot;Famille&quot;: &quot;antihypertenseurs&quot;,<br/>&quot;Interaction&quot;: &quot;Inhib. du CYP3A&quot;,<br/>&quot;CAT&quot;: &quot;precaution&quot;<br/>}<br/>,{       <br/>&quot;DCI&quot;: &quot;Aprépitant&quot;,<br/>&quot;Famille&quot;: &quot;autres&quot;,<br/>&quot;Interaction&quot;: &quot;Inhib. du CYP3A&quot;,<br/>&quot;CAT&quot;: &quot;precaution&quot;<br/>}<br/>]</code></pre> <div class="code-embed-infos"> </div> </div>
<p>Je n&rsquo;en mets ici qu&rsquo;un extrait. A l&rsquo;intérieur, on définit plusieurs types ou catégories : dans mon exemple, ce sera « DCI » , « famille », « Interaction », « CAT ». Ces éléments permettent de classifier les informations et de les récupérer plus facilement.</p>
<h3>La fonction js pour tout récupérer et insérer</h3>
<p>Ensuite, dans un fichier js dédié, voici le code utilisé. Ce dernier est commenté pour mieux comprendre. En fait ici j&rsquo;appelle le fichier json. Selon le choix de l&rsquo;utilisateur, j&rsquo;insère toutes les données « famille », « interactions » et « cat » correspondantes au produit choisi. Ensuite, je fais en sorte que l&rsquo;élements choisi soit mis en exergue en front pour le distinguer plus facilement (voir le gif)</p>
<div class="code-embed-wrapper"> <pre class="language-javascript code-embed-pre"  data-start="1" data-line-offset="0"><code class="language-javascript code-embed-code">let dropdown = $(&#039;#dci&#039;);<br/>let input1 = $(&#039;#family&#039;);<br/>let input2 = $(&#039;#interactions&#039;);<br/>let input3 = $(&#039;#cat&#039;);<br/><br/><br/>dropdown.empty();//je vide le champ select<br/>dropdown.append(&#039;&lt;option selected=&quot;true&quot; class=&quot;reset&quot;&gt;Choisir un médoc&lt;/option&gt;&#039;);//j&#039;insère dynamiquement une option par défaut<br/>const url = &#039;http://localhost/cerdelga-select/interaction.json&#039;; // je définis l&#039;url de mon fichier json<br/>$.getJSON(url, function(data) {//je récupère les données<br/>    $.each(data, function (key, entry) {//pour chaque entrée..<br/>    dropdown.append($(&#039;&lt;option&gt;&lt;/option&gt;&#039;).attr(&#039;value&#039;, entry.DCI).text(entry.DCI));//j&#039;insère depuis le fichier json les données de ma catégorie DCI à l&#039;intérieur de l&#039;attribut &quot;value&quot;<br/>   }); <br/>   $(&#039;#dci&#039;).change(function()  {//pour chaque selection de l&#039;utilisateur<br/>     var i = this.selectedIndex; // je définis l&#039;index du choix<br/>      i = i - 1; <br/>     <br/>          <br/>      input1.removeClass().addClass(data[i].Famille);//dans ma div #family je supprime la classe s&#039;il y en a une, et j&#039;ajoute la classe liée à ma catégorie famille<br/>      input2.text(data[i].Interaction);// dans ma div #interaction, j&#039;insère les infos de ma catégorie interaction<br/>      input3.removeClass().addClass(data[i].CAT);//dans ma div #cat je supprime la classe s&#039;il y en a une, et j&#039;ajoute la classe liée à ma catégorie CAT<br/>    <br/><br/>    var elem = $(this).parent().next().find(&#039;div&#039;).attr(&#039;class&#039;);//depuis le champ select #dci, je remonte d&#039;un cran dans le DOM, je cible l&#039;élement suivant, à l&#039;intérieur je cible la div, et prend la classe<br/>   <br/><br/>    $(&#039;p[data-rel = &#039;+elem+&#039;]&#039;).removeClass().addClass(&#039;lighten&#039;).siblings().removeClass().addClass(&#039;darken&#039;);//ici je mets en exergue la catégorie correspondante<br/>    var car = $(this).parent().siblings().find(&#039;#cat&#039;).attr(&#039;class&#039;);//je récupère la classe de la div #cat<br/>    $(&#039;.checker-cat p[data-rel = &#039;+car+&#039;]&#039;).removeClass().addClass(&#039;lighten&#039;).siblings().removeClass().addClass(&#039;darken&#039;);//pareil, je mets en exergue les élements CAT correspondants<br/>    <br/>  <br/>   });<br/>});<br/><br/><br/><br/>  <br/>                                       <br/>                                        </code></pre> <div class="code-embed-infos"> </div> </div>
<h2>Utiliser un plugin js pour l&rsquo;autocomplétion : easy-autocomplete</h2>
<p>Si la liste des produits comporte des dizaines d&rsquo;option, il faudra à un moment passer à l&rsquo;auto-complétion, afin d&rsquo;éviter une liste à rallonge qui dépasse même le cadre de l&rsquo;écran.</p>
<p><img decoding="async" loading="lazy" class="alignnone size-full wp-image-6219" src="https://www.copier-coller.com/wp-content/uploads/2020/12/easy-autocomplete.gif" alt="" width="886" height="531" /></p>
<p>Voici donc une autre manière de faire. Je mets ici mon html, quelque peu modifié</p>
<div class="code-embed-wrapper"> <pre class="language-markup code-embed-pre"  data-start="1" data-line-offset="0"><code class="language-markup code-embed-code">  &lt;div class=&quot;checker-inputs&quot;&gt;<br/>	  &lt;div&gt;<br/>		  &lt;label for=&quot;dci&quot; class=&quot;flex j-center a-center&quot;&gt;| DCI | &lt;/label&gt;<br/>		  &lt;!--   &lt;select id=&quot;dci&quot; name=&quot;dci&quot; autocomplete&gt;&lt;/select&gt; --&gt;<br/>		  &lt;input id=&quot;dci&quot; name=&quot;dci&quot;&gt;<br/>	  &lt;/div&gt;<br/>	  &lt;div&gt;<br/>		  &lt;label for=&quot;family&quot; class=&quot;flex j-center a-center&quot;&gt;| Famille|&lt;/label&gt;<br/>		  &lt;div id=&quot;family&quot; class=&quot;&quot;&gt;<br/>			  &lt;span class=&quot;color&quot;&gt;&lt;/span&gt;<br/>		  &lt;/div&gt;<br/>	  &lt;/div&gt;<br/>	  &lt;div&gt;<br/>		  &lt;label for=&quot;interactions&quot; class=&quot;flex j-center a-center&quot;&gt;| Interactions|&lt;/label&gt;<br/>		  &lt;input type=&quot;text&quot; id=&quot;interactions&quot; type=&quot;text&quot; class=&quot;&quot;&gt;<br/>	  &lt;/div&gt;<br/>	  &lt;div&gt;<br/>		  &lt;label for=&quot;cat&quot; class=&quot;flex j-center a-center&quot;&gt;| CAT**|&lt;/label&gt;<br/>		  &lt;div id=&quot;cat&quot; class=&quot;&quot;&gt;<br/>			  &lt;span class=&quot;icon&quot;&gt;&lt;/span&gt;<br/>		  &lt;/div&gt;<br/>	  &lt;/div&gt;<br/>&lt;/div&gt;</code></pre> <div class="code-embed-infos"> </div> </div>
<p>Ici, le premier champ est un select, le champ « interactions » est un input de type texte, les deux autres sont des div simples.</p>
<p>Dans cet exemple, je vais utiliser<a href="http://easyautocomplete.com/"> easy-autocomplete</a>. Ce plugin d&rsquo;auto-complétion est très bien fait et propose plein d&rsquo;options, pour tout type de projet.</p>
<p>Dans mon header, j&rsquo;appelle donc le fichier css puis dans le footer, le script easy-complete.</p>
<div class="code-embed-wrapper"> <pre class="language-markup code-embed-pre"  data-start="1" data-line-offset="0"><code class="language-markup code-embed-code">&lt;!--balise head--&gt;<br/>&lt;link rel=&quot;stylesheet&quot; href=&quot;css/easy-autocomplete.css&quot;&gt;<br/><br/>&lt;!--footer--&gt;<br/> &lt;script src=&quot;js/jquery.easy-autocomplete.js&quot;&gt;&lt;/script&gt;</code></pre> <div class="code-embed-infos"> </div> </div>
<p>Le résultat sera exactement le même, sauf qu&rsquo;à la place d&rsquo;une liste sans fin, le select va nous afficher tous les termes correspondants aux premières lettre tapées. Le plugin permet aussi de remplir automatiquement les champs vides en fonction du choix utilisateur. Veuillez vous reporter à la<a href="http://easyautocomplete.com/examples"> page d&rsquo;exemple du plugin</a>, d&rsquo;où j&rsquo;ai tiré l&rsquo;essentiel du code.</p>
<p>Voici la fonction js :</p>
<div class="code-embed-wrapper"> <pre class="language-javascript code-embed-pre"  data-start="1" data-line-offset="0"><code class="language-javascript code-embed-code">var options = {<br/>  adjustWidth: false,<br/><br/>  url: &quot;http://localhost/interaction.json&quot;,<br/><br/>  getValue: &quot;DCI&quot;,//on récupère chaque entrée du fichier json grâce à la fonction getValue du plugin<br/><br/>  list: {<br/>match: {<br/>      enabled: true<br/>    },<br/>    sort:{<br/>      enabled: true // rangement par ordre alphabétique<br/>    <br/>    },<br/>    maxNumberOfElements: 10, // max<br/>    onSelectItemEvent: function() {// on récupère les données de chaque entrée qu&#039;on insère dans les div correspondantes<br/>      var famille = $(&quot;#dci&quot;).getSelectedItemData().Famille; <br/>      var interaction = $(&quot;#dci&quot;).getSelectedItemData().Interaction;<br/>      var cat = $(&quot;#dci&quot;).getSelectedItemData().CAT;<br/><br/>      $(&quot;#family&quot;).removeClass().addClass(famille).trigger(&quot;change&quot;);// comme dans le précédent exemple,<br/>      $(&quot;#interactions&quot;).val(interaction).trigger(&quot;change&quot;);<br/>      $(&quot;#cat&quot;).removeClass().addClass(cat).trigger(&quot;change&quot;);<br/>    }<br/>  }<br/>};<br/><br/>$(&quot;#dci&quot;).easyAutocomplete(options);</code></pre> <div class="code-embed-infos"> </div> </div>
<h3>Le code en action</h3>
<p>Voici un exemple reprenant tous les élements décrits plus haut</p>
<p class="codepen" style="height: 300px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;" data-height="300" data-theme-id="10187" data-default-tab="js,result" data-user="yuyazz" data-slug-hash="OJRKBvj" data-preview="true" data-pen-title="EasyAutoComplete js and dynamic select fields">See the Pen <a href="https://codepen.io/yuyazz/pen/OJRKBvj"><br />
EasyAutoComplete js and dynamic select fields</a> by blindDev (<a href="https://codepen.io/yuyazz">@yuyazz</a>)<br />
on <a href="https://codepen.io">CodePen</a>.</p>
<p><script async src="https://cpwebassets.codepen.io/assets/embed/ei.js"></script></p>
<p>The post <a rel="nofollow" href="https://www.copier-coller.com/creer-un-comparateur-drug-checker-simplifie-en-js/">Créer un comparateur « drug checker » simplifié en js</a> appeared first on <a rel="nofollow" href="https://www.copier-coller.com">Copier coller</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.copier-coller.com/creer-un-comparateur-drug-checker-simplifie-en-js/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Valider ses formulaires avec jquery validate</title>
		<link>https://www.copier-coller.com/valider-ses-formulaires-avec-jquery-validate/</link>
					<comments>https://www.copier-coller.com/valider-ses-formulaires-avec-jquery-validate/#respond</comments>
		
		<dc:creator><![CDATA[copier coller]]></dc:creator>
		<pubDate>Wed, 24 Jun 2020 21:14:06 +0000</pubDate>
				<category><![CDATA[jQuery]]></category>
		<guid isPermaLink="false">https://www.copier-coller.com/?p=6191</guid>

					<description><![CDATA[<p>Dans ce tuto on va voir comment on peut valider un formulaire html/css en un temps record, grâce au plugin jquery-validate.js. Il en existe beaucoup d&#8217;autres, comme validate.js, et il est également possible de le faire en javascript natif, comme le montre le site W3shools. See the Pen Simple jquery-validate form by blindDev (@yuyazz) on [...]</p>
<p>The post <a rel="nofollow" href="https://www.copier-coller.com/valider-ses-formulaires-avec-jquery-validate/">Valider ses formulaires avec jquery validate</a> appeared first on <a rel="nofollow" href="https://www.copier-coller.com">Copier coller</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Comment valider ses formulaires avec jquery validate ?</h2>
<p>Dans ce tuto on va voir comment on peut valider un<strong> formulaire html/css</strong> en un temps record, grâce au plugin <a href="https://jqueryvalidation.org/">jquery-validate.js</a>. Il en existe beaucoup d&rsquo;autres, comme <a href="https://validatejs.org/">validate.js</a>, et il est également possible de le faire en javascript natif, comme le montre le site <a href="https://www.w3schools.com/js/js_validation.asp">W3shools</a>.</p>
<p class="codepen" data-height="611" data-theme-id="10187" data-default-tab="js,result" data-user="yuyazz" data-slug-hash="abmyzPQ" data-preview="true" style="height: 611px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;" data-pen-title="Simple jquery-validate form">
  <span>See the Pen <a href="https://codepen.io/yuyazz/pen/abmyzPQ"><br />
  Simple jquery-validate form</a> by blindDev (<a href="https://codepen.io/yuyazz">@yuyazz</a>)<br />
  on <a href="https://codepen.io">CodePen</a>.</span>
</p>
<p><script async src="https://cpwebassets.codepen.io/assets/embed/ei.js"></script></p>
<h3>Comment faire dans le cas d&rsquo;un formulaire avec vérification et envoi en ajax/ php ?</h3>
<p>Si vous partez d&rsquo;un formulaire classique en php, avec une validation en ajax, voici une piste pour faire fonctionner les deux ensembles. Ici je me base sur l&rsquo;exemple fourni par le site <a href="https://webdesign.tutsplus.com/fr/tutorials/building-a-bootstrap-contact-form-using-php-and-ajax--cms-23068">tutsplus</a>. L&rsquo;idée est d&rsquo;afficher un formulaire avec un message de succès caché. A la soumission du formulaire on cache ce dernier et on affiche le message.</p>
<h3>La vérification des données en php</h3>
<p>Voici le code à insérer dans un fichier php à part, qu&rsquo;on va appeler form-process.php. Le code est appliqué au formulaire donné en exemple.</p>
<div class="code-embed-wrapper"> <pre class="language-php code-embed-pre"  data-start="1" data-line-offset="0"><code class="language-php code-embed-code">&lt;?php<br/>$errorMSG = &quot;&quot;;<br/> <br/>// NAME<br/>if (empty($_POST[&quot;name&quot;])) {<br/>    $errorMSG = &quot;Veuillez indiquer votre Nom et Pr&eacute;nom&quot;;<br/>} else {<br/>    $name = $_POST[&quot;name&quot;];<br/>}<br/> <br/>// EMAIL<br/>if (empty($_POST[&quot;email&quot;])) {<br/>    $errorMSG .= &quot;Veuillez indiquer votre Email&quot;;<br/>} else {<br/>    $email = $_POST[&quot;email&quot;];<br/>}<br/><br/>// TEL<br/>if (empty($_POST[&quot;tel&quot;])) {<br/>    $errorMSG .= &quot;Veuillez indiquer votre num&eacute;ro de t&eacute;l&eacute;phone&quot;;<br/>} else {<br/>    $tel = $_POST[&quot;tel&quot;];<br/>}<br/><br/>// ENTREPRISE<br/>if (empty($_POST[&quot;entreprise&quot;])) {<br/>    $errorMSG .= &quot;Veuillez indiquer votre entreprise&quot;;<br/>} else {<br/>    $entreprise = $_POST[&quot;entreprise&quot;];<br/>}<br/><br/><br/>// MESSAGE<br/>if (empty($_POST[&quot;message&quot;])) {<br/>    $errorMSG .= &quot;Message is required &quot;;<br/>} else {<br/>    $message = $_POST[&quot;message&quot;];<br/>}<br/> <br/> <br/>$name = $_POST[&quot;name&quot;];<br/>$email = $_POST[&quot;email&quot;];<br/>$tel = $_POST[&quot;tel&quot;];<br/>$entreprise = $_POST[&quot;entreprise&quot;];<br/>$message = $_POST[&quot;message&quot;];<br/> <br/>$EmailTo = &quot;votreemail@gmail.com,autreemail@hotmail.fr&quot;;<br/>$Subject = &quot;Nouveau message de monsite.com&quot;;<br/> <br/>// le corps du mail<br/>$Body .= &quot;Name: &quot;;<br/>$Body .= $name;<br/>$Body .= &quot;\n&quot;;<br/> <br/>$Body .= &quot;Email: &quot;;<br/>$Body .= $email;<br/>$Body .= &quot;\n&quot;;<br/> <br/>$Body .= &quot;Tel: &quot;;<br/>$Body .= $tel;<br/>$Body .= &quot;\n&quot;;<br/><br/>$Body .= &quot;Entreprise: &quot;;<br/>$Body .= $entreprise;<br/>$Body .= &quot;\n&quot;;<br/><br/>$Body .= &quot;Message: &quot;;<br/>$Body .= $message;<br/>$Body .= &quot;\n&quot;;<br/> <br/>// envoi email<br/>$success = mail($EmailTo, $Subject, $Body, &quot;From:&quot;.$email);<br/> <br/>// redirection vers le message de validation<br/>if ($success &amp;&amp; $errorMSG == &quot;&quot;){<br/>   echo &quot;success&quot;;<br/>}else{<br/>    if($errorMSG == &quot;&quot;){<br/>        echo &quot;Something went wrong :(&quot;;<br/>    } else {<br/>        echo $errorMSG;<br/>    }<br/>}<br/><br/>?&gt;</code></pre> <div class="code-embed-infos"> </div> </div>
<h3>Les fonctions js de vérification</h3>
<p>Si l&rsquo;on suit le tutoriel de Tutsplus, voici le fichier js dépouillé, sans l&rsquo;utilisation de <a href="https://1000hz.github.io/bootstrap-validator/">bootstrap validator</a> et tout le reste.</p>
<div class="code-embed-wrapper"> <pre class="language-javascript code-embed-pre"  data-start="1" data-line-offset="0"><code class="language-javascript code-embed-code">$(&quot;#contact&quot;).submit(function(event){<br/>    <br/>    event.preventDefault();<br/>    submitForm();<br/>});<br/>function formSuccess(){ // ici des évènements qui s&#039;actionnent lors de l&#039;envoi du formulaire, typiquement, je cache le formulaire et le bouton d&#039;envoi, et insère un message de validation à la place<br/>     <br/>	$(&quot;#contact&quot;).hide().html(&quot;#msgSubmit&quot;);<br/>	$( &quot;#msgSubmit&quot; ).removeClass( &quot;hidden&quot; );<br/>	<br/>}<br/>function submitForm(){<br/>	var name = $(&quot;#name&quot;).val();<br/>		var email = $(&quot;#email&quot;).val();<br/>		var tel = $(&quot;#tel&quot;).val();<br/>		var entreprise = $(&quot;#entreprise&quot;).val();<br/>		var message = $(&quot;#message&quot;).val();<br/> <br/>		 $.ajax({<br/>			  type: &quot;POST&quot;,<br/>			  url: &quot;form-process.php&quot;,<br/>			  data: &quot;name=&quot; + name + &quot;&amp;email=&quot; + email +&quot;&amp;tel=&quot; + tel + &quot;&amp;entreprise=&quot; + entreprise + &quot;&amp;message=&quot; + message,<br/>			  success : function(text){<br/>				  if (text == &quot;success&quot;){<br/>					  formSuccess();<br/>				  } <br/>			  }<br/>		  });<br/>}</code></pre> <div class="code-embed-infos"> </div> </div>
<h3>La fonction finale js + php</h3>
<p>Puisqu&rsquo;on se retrouve avec deux fonctions d&rsquo;envoi, celle en ajax et celle du plugin jquery.validate.js, il va falloir mixer le tout : voici donc la version finalisée du fichier js. Les lignes sont commentées pour une meilleure compréhension.</p>
<div class="code-embed-wrapper"> <pre class="language-javascript code-embed-pre"  data-start="1" data-line-offset="0"><code class="language-javascript code-embed-code">function formSuccess(){  // voici la fonction &quot;formSuccess&quot; : en cas de soumission du formulaire, une fois les conditions passées, on envoie le formulaire et on affiche à la place du formulaire la div cachée contenant le message de succès.<br/>	$(&quot;#contact&quot;).hide().html(&quot;#msgSubmit&quot;);<br/>	$( &quot;#msgSubmit&quot; ).removeClass( &quot;hidden&quot; );	<br/>}<br/><br/><br/>$(function() {<br/> <br/>  $(&quot;form[name=&#039;contact&#039;]&quot;).validate({<br/>       rules: {<br/>      // Chque input a un attribut &quot;name&quot; que l&#039;on reprend ici pour la vérification<br/>      nom: &quot;required&quot;,<br/>      prenom: &quot;required&quot;,<br/>      tel:{<br/>       required: true,<br/>      number: true<br/>      },<br/>      email: {<br/>        required: true,<br/>        // ono applique ici les règles d&#039;email définies par le plugin<br/>        email: true<br/>      },<br/>      message:&quot;required&quot;<br/>    },<br/>    // On définit ici les messages d&#039;erreur propre à chaque champ<br/>    messages: {<br/>      nom: &quot;veuillez insérer votre nom&quot;,<br/>      prenom: &quot;veuillez insérer votre prénom&quot;,<br/>      entreprise:&quot;veuillez indiquer une entreprise&quot;,<br/>      tel: &#039;veuillez insérer un numéro de téléphone&#039;,<br/>      email: &quot;veuillez insérer une adresse mail valide&quot;,<br/>      message:&quot;veuillez remplir ce champ&quot;<br/>    },<br/>    submitHandler: function(form) {<br/>	//la fonction ajax insérée dans le submitHandler de jquery.validate<br/>		var name = $(&quot;#name&quot;).val();<br/>		var email = $(&quot;#email&quot;).val();<br/>		var tel = $(&quot;#tel&quot;).val();<br/>		var entreprise = $(&quot;#entreprise&quot;).val();<br/>		var message = $(&quot;#message&quot;).val();<br/> <br/>		 $.ajax({<br/>			  type: &quot;POST&quot;,<br/>			  url: &quot;form-process.php&quot;, // on envoie le tout dans la moulinette php du fichier form-process.php pour l&#039;envoi du message<br/>			  data: &quot;name=&quot; + name + &quot;&amp;email=&quot; + email +&quot;&amp;tel=&quot; + tel + &quot;&amp;entreprise=&quot; + entreprise + &quot;&amp;message=&quot; + message,<br/>			  success : function(text){<br/>				  if (text == &quot;success&quot;){ //si c&#039;est ok, applique la fonction formSuccess<br/>					  formSuccess();<br/>				  } <br/>			  }<br/>		  });<br/>		}<br/>	});<br/>});</code></pre> <div class="code-embed-infos"> </div> </div>
<p>Avec ca, vous devriez donc avoir la vérification html5, celle du js côté client, et la vérification php côté serveur !</p>
<p>The post <a rel="nofollow" href="https://www.copier-coller.com/valider-ses-formulaires-avec-jquery-validate/">Valider ses formulaires avec jquery validate</a> appeared first on <a rel="nofollow" href="https://www.copier-coller.com">Copier coller</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.copier-coller.com/valider-ses-formulaires-avec-jquery-validate/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Personnaliser les légendes d&#8217;un graphique avec Chart Js</title>
		<link>https://www.copier-coller.com/personnaliser-les-legendes-dun-graphique-avec-chart-js/</link>
					<comments>https://www.copier-coller.com/personnaliser-les-legendes-dun-graphique-avec-chart-js/#respond</comments>
		
		<dc:creator><![CDATA[copier coller]]></dc:creator>
		<pubDate>Sat, 06 Jun 2020 18:16:49 +0000</pubDate>
				<category><![CDATA[jQuery]]></category>
		<guid isPermaLink="false">https://www.copier-coller.com/?p=6180</guid>

					<description><![CDATA[<p>Dans un précédent tuto, on a vu comment mettre rapidement en place un graphique de statistique par année. Vous pouvez vous référer au précédent tutoriel pour construite tout votre graphique. Voici le rendu avec des légendes personnalisées: See the Pen Chart js Donught with custom labels by blindDev (@yuyazz) on CodePen. A la différence du [...]</p>
<p>The post <a rel="nofollow" href="https://www.copier-coller.com/personnaliser-les-legendes-dun-graphique-avec-chart-js/">Personnaliser les légendes d&rsquo;un graphique avec Chart Js</a> appeared first on <a rel="nofollow" href="https://www.copier-coller.com">Copier coller</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Comment personnaliser ses légendes avec le plugin Chart js ?</h2>
<p>Dans un <a href="https://www.copier-coller.com/creer-un-graphique-en-anneau-donught-chart/">précédent tuto</a>, on a vu comment mettre rapidement en place un graphique de statistique par année. Vous pouvez vous référer au précédent tutoriel pour construite tout votre graphique.</p>
<p>Voici le rendu avec des légendes personnalisées:</p>
<p class="codepen" style="height: 300px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;" data-height="300" data-theme-id="10187" data-default-tab="js,result" data-user="yuyazz" data-slug-hash="oNjKqKj" data-preview="true" data-pen-title="Chart js Donught with custom labels">See the Pen <a href="https://codepen.io/yuyazz/pen/oNjKqKj"><br />
Chart js Donught with custom labels</a> by blindDev (<a href="https://codepen.io/yuyazz">@yuyazz</a>)<br />
on <a href="https://codepen.io">CodePen</a>.</p>
<p><script async src="https://static.codepen.io/assets/embed/ei.js"></script></p>
<p>A la différence du précédent exemple, la première chose à faire ici est d&rsquo;annuler les légendes par défaut :</p>
<div class="code-embed-wrapper"> <pre class="language-javascript code-embed-pre"  data-start="1" data-line-offset="0"><code class="language-javascript code-embed-code">legend: {<br/>		  display: false<br/>		},</code></pre> <div class="code-embed-infos"> </div> </div>
<p>Ensuite dans le html, on va construite une simple div. Je lui donne l&rsquo;ID : « <em>legendBlock</em>« , mais vous pouvez lui donner n&rsquo;importe quel nom.</p>
<div class="code-embed-wrapper"> <pre class="language-markup code-embed-pre"  data-start="1" data-line-offset="0"><code class="language-markup code-embed-code">&lt;div id=&quot;legendBlock&quot;&gt; &lt;/div&gt;</code></pre> <div class="code-embed-infos"> </div> </div>
<p>Dans le js, on va utiliser la fonction <em>myDoughnutChart.generateLegend()</em>; pour insérer les légendes dynamiquement dans notre div en ciblant son ID :</p>
<div class="code-embed-wrapper"> <pre class="language-javascript code-embed-pre"  data-start="1" data-line-offset="0"><code class="language-javascript code-embed-code">document.getElementById(&#039;legendBlock&#039;).innerHTML = myDoughnutChart.generateLegend();</code></pre> <div class="code-embed-infos"> </div> </div>
<p>Voilà. ¨Pour le reste, on peut ensuite via notre css créer de simples cercles ou reproduire l&rsquo;apparence des légendes par défaut. La fonction <em>generateLegend()</em> va déjà générer une liste formatée avec notamment les couleurs définies dans votre js.</p>
<div class="code-embed-wrapper"> <pre class="language-markup code-embed-pre"  data-start="1" data-line-offset="0"><code class="language-markup code-embed-code">&lt;ul class=&quot;0-legend&quot;&gt;&lt;li&gt;&lt;span&gt;&lt;/span&gt;&lt;/li&gt;...</code></pre> <div class="code-embed-infos"> </div> </div>
<p>Il vous suffira alors de styliser un peu plus votre liste</p>
<div class="code-embed-wrapper"> <pre class="language-css code-embed-pre"  data-start="1" data-line-offset="0"><code class="language-css code-embed-code">ul{<br/>	list-style:none;<br/>	padding-left:0;<br/>	margin-left:0<br/>}<br/><br/>#legendBlock li span{<br/>    display: inline-block;<br/>    width: 45px;<br/>    height: 20px;<br/>    margin-right: 5px;<br/>	border:1px solid #fff<br/><br/>}<br/>.legend{<br/>	align-self:center;<br/>}</code></pre> <div class="code-embed-infos"> </div> </div>
<p>&nbsp;</p>
<p>The post <a rel="nofollow" href="https://www.copier-coller.com/personnaliser-les-legendes-dun-graphique-avec-chart-js/">Personnaliser les légendes d&rsquo;un graphique avec Chart Js</a> appeared first on <a rel="nofollow" href="https://www.copier-coller.com">Copier coller</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.copier-coller.com/personnaliser-les-legendes-dun-graphique-avec-chart-js/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
