<?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>tutoriel highcharts | Undisconnected</title>
	<atom:link href="https://undisconnected.com/tag/tutoriel-highcharts/feed/" rel="self" type="application/rss+xml" />
	<link>https://undisconnected.com</link>
	<description>Reste connecté</description>
	<lastBuildDate>Wed, 23 Apr 2014 03:59:03 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>Recharger un graphique Highchart avec de nouvelles données provenant d&#8217;un formulaire</title>
		<link>https://undisconnected.com/recharger-un-graphique-highchart-avec-de-nouvelles-donnees-provenant-dun-formulaire/</link>
					<comments>https://undisconnected.com/recharger-un-graphique-highchart-avec-de-nouvelles-donnees-provenant-dun-formulaire/#comments</comments>
		
		<dc:creator><![CDATA[Imatt]]></dc:creator>
		<pubDate>Mon, 24 Mar 2014 14:20:30 +0000</pubDate>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Tutoriels]]></category>
		<category><![CDATA[highcharts]]></category>
		<category><![CDATA[recharger des données]]></category>
		<category><![CDATA[recharger un graphique]]></category>
		<category><![CDATA[tutoriel highcharts]]></category>
		<guid isPermaLink="false">https://undisconnected.com/?p=2235</guid>

					<description><![CDATA[<p>Je vous ai préparé un tutoriel sur Highchart qui explique comment recharger un graphique avec de nouvelles données saisies dans un formulaire HTML. Dans mon cas, je vais prendre l&#8217;exemple de quelqu&#8217;un qui saisit des données dans des champs texte et recharger le graphique à l&#8217;aide de ces données. Voir le résultat du tutoriel Structure [&#8230;]</p>
The post <a href="https://undisconnected.com/recharger-un-graphique-highchart-avec-de-nouvelles-donnees-provenant-dun-formulaire/">Recharger un graphique Highchart avec de nouvelles données provenant d’un formulaire</a> first appeared on <a href="https://undisconnected.com">Undisconnected</a>.]]></description>
										<content:encoded><![CDATA[<p>Je vous ai préparé un tutoriel sur Highchart qui explique comment recharger un graphique avec de nouvelles données saisies dans un formulaire HTML. Dans mon cas, je vais prendre l&rsquo;exemple de quelqu&rsquo;un qui saisit des données dans des champs texte et recharger le graphique à l&rsquo;aide de ces données.</p>
<p class="links"><a href="https://undisconnected.com/sandbox/highcharts-reload/" target="_blank">Voir le résultat du tutoriel</a></p>
<h2>Structure de ce tutoriel Highcharts</h2>
<p>Pour ce tutoriel, nous allons utiliser la structure de fichier suivante :</p>
<ul>
<li>fichier index.html</li>
<li>fichier main.js (contient le code pour le graphique)</li>
<li>On appelle Highcharts &amp; jQuery via un CDN</li>
</ul>
<h2>Fichier index.html qui va accueillir le graph Highcharts</h2>
<pre>
<html>
<head>
<title>Undisconnected - Tutoriel sur comment recharger un graphique Highcharts.js avec de nouvelle données </title>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<!-- Libs -->
<script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js'></script>
<script type='text/javascript' src='//cdnjs.cloudflare.com/ajax/libs/highcharts/3.0.2/highcharts.js'></script>
<script type='text/javascript' src='main.js'></script>

</head>
<body style='margin:0px;'>
<div class='wrapper'>

<div id='pieChart'></div>
  
<div id="data" style='text-align:center; width:598px;'>
  Données 1 : <input placeholder="Nom" type="text" class="titre" name="titre[]" value="Raisin" /> - <input placeholder="Valeur" type="text" class="value" name="value[]" value="8"  /><br />
  Données 2 : <input placeholder="Nom" type="text" class="titre" name="titre[]" value="Banane" /> - <input placeholder="Valeur" type="text" class="value" name="value[]" value="6" /><br />
  Données 3 : <input placeholder="Nom" type="text" class="titre" name="titre[]" value="Pommes" /> - <input placeholder="Valeur" type="text" class="value" name="value[]" value="12" /><br />
  Données 4 : <input placeholder="Nom" type="text" class="titre" name="titre[]" value="Avocats" /> - <input placeholder="Valeur" type="text" class="value" name="value[]" value="18" /><br />
  <button id="button">Recharger le graphique</button>
</div>  
  
  
</div>
</body>
</html></pre>
<p>Ici, rien de bien compliqué, on fait juste créer un fichier HTML5 en appelant le fichier main.js et les 2 librairies Highcharts et jQuery. Puis on construit un formulaire.</p>
<h2>Fichier main.js</h2>
<p>Le fichier main.js va accueillir le code qui va nous servir à créer le graph mais aussi le code qui va permettre de recharger le graph avec de nouvelles données saisies par l&rsquo;utilisateur dans un formulaire.</p>
<p>Découpons un peu le code! Premièrement, nous allons mettre en place la fonction qui va générer le graphique au chargement de la page (la première fois). Notez que l&rsquo;on assigne ce graphique à la variable <em>document.chart</em>, ceci dans le but de pouvoir accéder facilement plus tard à notre variable. (voir la portée des variables en Javascript).</p>
<p><strong>Fonction qui affiche le graphique</strong></p>
<pre>var colors = ["#1f77b4", "#aec7e8", "#ff7f0e", "#ffbb78", "#2ca02c", "#98df8a", "#d62728", "#ff9896", "#9467bd", "#c5b0d5", "#8c564b", "#c49c94", "#e377c2", "#f7b6d2", "#7f7f7f", "#c7c7c7", "#bcbd22", "#dbdb8d", "#17becf", "#9edae5"];


$.displayPieChart = function(colors, data) {
         
          document.chart = new Highcharts.Chart({
      chart: {
         renderTo: 'pieChart',
         width: 598,
         height: 450,
         marginLeft: 25,
         marginRight: 25,
      },
      colors: colors,
      title: {
         text: "Il faut manger des fruits",
         margin: 10
      },
      tooltip: {
         formatter: function() {
            return "Nombre: " + parseInt(this.y) ;
         }
      },
      plotOptions: {
         pie: {
            allowPointSelect: true,
            cursor: 'pointer',
            dataLabels: {
               enabled: true,
               formatter: function() {
                  return "" + this.point.name.toLowerCase() + "";
               }
            }
         },
         series: {
            dataLabels: {
                enabled: true,
                color: 'black',
                fontSize: 3
            }
        }
      },
       series: [{
         type: 'pie',
         name: 'fruits',
         data: data
      }]
   });
         
         
     }
</pre>
<p>Ensuite, nous allons créer la fonction qui va prendre en charge la lecture du formulaire et le rechargement du graphique en fonction des nouvelles données.</p>
<p><strong>Fonction qui va recharger le graphique</strong></p>
<pre>function getDataFromUser(){

  var value   = [];
  var titre   = [];
  var data    = [];
 
  $("#data .value").each(function(i,e){
    value.push(parseInt($(e).attr("value")));
  });

  $("#data .titre").each(function(i,e){
    titre.push($(e).attr("value"));
  });
 
  $.each(titre, function(i,e){
    var inside  = [];
    inside.push(e);
    inside.push(value[i]);
    data.push(inside);
  })
 
  return data;
}
</pre>
<p>Quelques explications :</p>
<p>Ici on va aller lire à l&rsquo;aide de jQuery les valeurs entrées dans le formulaire. On sélectionne, #data .value (la série qui contient les chiffres) et #data .titre (la série qui contient les titres). On insère ces nouvelles données dans des array Javascript à l&rsquo;aide de la méthode push. On utilise la fonction parseInt pour s&rsquo;assurer que les valeurs seront bien des integers. Il faudrait pousser plus loin la vérification des données du formulaire dans un cas réel mais pour ce tutoriel, ça suffira amplement.</p>
<p>&nbsp;</p>
<p><strong>Finalement : Document ready de jQuery pour binder les actions</strong></p>
<pre>$(function() {
  var data = getDataFromUser();

  $.displayPieChart(colors, data);
 
  $("#button").click(function(){
    var data = getDataFromUser();
   
    document.chart.series[0].setData(data);
    document.chart.redraw();
   
  })
});
</pre>
<p>Ce bout de code permet donc dans l&rsquo;ordre de :</p>
<ul>
<ul>
<li>Récupérer les données du formulaire via la fonction <em>getDataFromUser</em></li>
<li>Initialiser le graphique au chargement de la page en appelant la fonction <em>displayPieChart</em>.</li>
<li>Binder (lier) le click sur le bouton(#button) le rechargement du graphique avec les nouvelles données</li>
</ul>
</ul>
<h2>Conclusion</h2>
<p>Voici donc le résultat de ce tutoriel sur Highchart, j&rsquo;espère que ça vous sera utile. N&rsquo;hésitez pas si vous des questions / remarques en commentaires.</p>
<p class="links"><a href="https://undisconnected.com/sandbox/highcharts-reload/" target="_blank">Voir le résultat du tutoriel</a></p>The post <a href="https://undisconnected.com/recharger-un-graphique-highchart-avec-de-nouvelles-donnees-provenant-dun-formulaire/">Recharger un graphique Highchart avec de nouvelles données provenant d’un formulaire</a> first appeared on <a href="https://undisconnected.com">Undisconnected</a>.]]></content:encoded>
					
					<wfw:commentRss>https://undisconnected.com/recharger-un-graphique-highchart-avec-de-nouvelles-donnees-provenant-dun-formulaire/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
	</channel>
</rss>
