<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ca">
	<id>http://wiki.joanillo.org/index.php?action=history&amp;feed=atom&amp;title=Gr%C3%A0fiques_amb_Javascript%3A_http%3A%2F%2Fwww.highcharts.com%2F</id>
	<title>Gràfiques amb Javascript: http://www.highcharts.com/ - Historial de revisió</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.joanillo.org/index.php?action=history&amp;feed=atom&amp;title=Gr%C3%A0fiques_amb_Javascript%3A_http%3A%2F%2Fwww.highcharts.com%2F"/>
	<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Gr%C3%A0fiques_amb_Javascript:_http://www.highcharts.com/&amp;action=history"/>
	<updated>2026-09-23T06:27:57Z</updated>
	<subtitle>Historial de revisió per a aquesta pàgina del wiki</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=Gr%C3%A0fiques_amb_Javascript:_http://www.highcharts.com/&amp;diff=250552&amp;oldid=prev</id>
		<title>Joan: Es crea la pàgina amb «=Introducció= *http://www.highcharts.com/ *http://www.highcharts.com/demo Highcharts és una llibreria de Javascript potent, amb la qual es poden fer gràfiques dinàmiq...».</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Gr%C3%A0fiques_amb_Javascript:_http://www.highcharts.com/&amp;diff=250552&amp;oldid=prev"/>
		<updated>2013-05-23T15:34:07Z</updated>

		<summary type="html">&lt;p&gt;Es crea la pàgina amb «=Introducció= *http://www.highcharts.com/ *http://www.highcharts.com/demo Highcharts és una llibreria de Javascript potent, amb la qual es poden fer gràfiques dinàmiq...».&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Pàgina nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=Introducció=&lt;br /&gt;
*http://www.highcharts.com/&lt;br /&gt;
*http://www.highcharts.com/demo&lt;br /&gt;
Highcharts és una llibreria de Javascript potent, amb la qual es poden fer gràfiques dinàmiques de moltes menes com es pot veure en les demostracions.&lt;br /&gt;
&lt;br /&gt;
En aquesta pràctica farem una gràfica recuperant dades d'una base de dades.&lt;br /&gt;
=Desenvolupament=&lt;br /&gt;
'''generar_fotos_stats.php''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
/*&lt;br /&gt;
mysql&amp;gt; select left(nom_fitxer,4) as anymes,count(*) as num from FOTO where (nom_fitxer like '12%' or nom_fitxer like '13%') group by anymes&lt;br /&gt;
    -&amp;gt; ;&lt;br /&gt;
+--------+-----+&lt;br /&gt;
| anymes | num |&lt;br /&gt;
+--------+-----+&lt;br /&gt;
| 1203   |  33 |&lt;br /&gt;
| 1204   | 193 |&lt;br /&gt;
| 1205   | 220 |&lt;br /&gt;
| 1206   |  26 |&lt;br /&gt;
| 1207   | 277 |&lt;br /&gt;
| 1208   |  73 |&lt;br /&gt;
| 1209   |  33 |&lt;br /&gt;
| 1210   | 106 |&lt;br /&gt;
| 1301   |   4 |&lt;br /&gt;
+--------+-----+&lt;br /&gt;
&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
include(&amp;quot;open_db.php&amp;quot;);&lt;br /&gt;
$myFile = &amp;quot;fotos_stats.json&amp;quot;;&lt;br /&gt;
$fh = fopen($myFile, 'w') or die(&amp;quot;can't open file&amp;quot;);&lt;br /&gt;
$sql = &amp;quot;select left(nom_fitxer,4) as anymes,count(*) as num from FOTO where (nom_fitxer like '12%' or nom_fitxer like '13%') group by anymes&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
$result = mysql_query($sql);&lt;br /&gt;
&lt;br /&gt;
if (!$result) {&lt;br /&gt;
    $message  = 'Invalid query: ' . mysql_error() . &amp;quot;\n&amp;quot;;&lt;br /&gt;
    die($message);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$dades0 = &amp;quot;&amp;quot;;&lt;br /&gt;
$dades1 = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
while ($row = mysql_fetch_assoc($result)) {&lt;br /&gt;
	$dades0 .= $row['anymes'];&lt;br /&gt;
	$dades0 .= &amp;quot;,&amp;quot;;&lt;br /&gt;
	$dades1 .= $row['num'];&lt;br /&gt;
	$dades1 .= &amp;quot;,&amp;quot;;&lt;br /&gt;
	$i++;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$dades0 = substr($dades0,0,strlen($dades0)-1);&lt;br /&gt;
$dades1 = substr($dades1,0,strlen($dades1)-1);&lt;br /&gt;
&lt;br /&gt;
$dades = $dades0 . &amp;quot;*&amp;quot; . $dades1;&lt;br /&gt;
echo $dades;&lt;br /&gt;
&lt;br /&gt;
include(&amp;quot;close_db.php&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
El script anterior el que fa és preparar les dades (eix x i eix y) que es veuran a la gràfica. Les dades es separen per comes, i les dades de l'eix x i l'eix y es separen amb el caràcter comodí *. Aquesta informació s'enviarà amb una crida AJAX en el script següent.&lt;br /&gt;
&lt;br /&gt;
'''stats_insectes.html''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot; &amp;quot;xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;Highcharts - Base de dades&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=utf-8&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
var example = 'line-basic',&lt;br /&gt;
	theme = 'default';&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;/demo/scripts.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(function($){ // encapsulate jQuery&lt;br /&gt;
&lt;br /&gt;
$(function () {&lt;br /&gt;
&lt;br /&gt;
	$(&amp;quot;#container2&amp;quot;).load(&amp;quot;generar_fotos_stats.php&amp;quot;,function(responseTxt,statusTxt,xhr){&lt;br /&gt;
		if(statusTxt==&amp;quot;success&amp;quot;)&lt;br /&gt;
		//alert(&amp;quot;External content loaded successfully!&amp;quot;);&lt;br /&gt;
		//alert(responseTxt);&lt;br /&gt;
&lt;br /&gt;
		var dades = responseTxt.split(&amp;quot;*&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
		var dades0 = dades[0].split(&amp;quot;,&amp;quot;); &lt;br /&gt;
		var dades1 = dades[1].split(&amp;quot;,&amp;quot;); &lt;br /&gt;
&lt;br /&gt;
		for(var i=0;i&amp;lt;dades1.length;i++){&lt;br /&gt;
			dades1[i] = parseInt(dades1[i]);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		// define the options&lt;br /&gt;
		var options = {&lt;br /&gt;
			chart: {&lt;br /&gt;
				type: 'line'&lt;br /&gt;
			},&lt;br /&gt;
			title: {&lt;br /&gt;
				text: 'Insectes stats'&lt;br /&gt;
			},&lt;br /&gt;
			xAxis: {&lt;br /&gt;
				title: {&lt;br /&gt;
				text: 'mes-any'&lt;br /&gt;
				},&lt;br /&gt;
				categories: dades0&lt;br /&gt;
			},&lt;br /&gt;
			yAxis: [{ // left y axis&lt;br /&gt;
				title: {&lt;br /&gt;
					text: 'num. insectes'&lt;br /&gt;
				},&lt;br /&gt;
				labels: {&lt;br /&gt;
					align: 'left',&lt;br /&gt;
					x: 3,&lt;br /&gt;
					y: 16,&lt;br /&gt;
					formatter: function() {&lt;br /&gt;
						return Highcharts.numberFormat(this.value, 0);&lt;br /&gt;
					}&lt;br /&gt;
				},&lt;br /&gt;
				showFirstLabel: false&lt;br /&gt;
				}, { // right y axis&lt;br /&gt;
				linkedTo: 0,&lt;br /&gt;
					gridLineWidth: 0,&lt;br /&gt;
					opposite: true,&lt;br /&gt;
					title: {&lt;br /&gt;
						text: null&lt;br /&gt;
					},&lt;br /&gt;
					labels: {&lt;br /&gt;
						align: 'right',&lt;br /&gt;
						x: -3,&lt;br /&gt;
						y: 16,&lt;br /&gt;
						formatter: function() {&lt;br /&gt;
							return Highcharts.numberFormat(this.value, 0);&lt;br /&gt;
						}&lt;br /&gt;
					},&lt;br /&gt;
				showFirstLabel: false&lt;br /&gt;
			}],&lt;br /&gt;
			plotOptions: {&lt;br /&gt;
				area: {&lt;br /&gt;
					marker: {&lt;br /&gt;
						enabled: false,&lt;br /&gt;
						symbol: 'circle',&lt;br /&gt;
						radius: 2,&lt;br /&gt;
						states: {&lt;br /&gt;
							hover: {&lt;br /&gt;
								enabled: true&lt;br /&gt;
							}&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			},&lt;br /&gt;
			legend: {&lt;br /&gt;
				enabled: false&lt;br /&gt;
			},&lt;br /&gt;
			series: [{&lt;br /&gt;
				name: 'num_insectes',&lt;br /&gt;
			}]&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		options.series[0].data = dades1;&lt;br /&gt;
&lt;br /&gt;
		$('#container').highcharts(options);&lt;br /&gt;
&lt;br /&gt;
		if(statusTxt==&amp;quot;error&amp;quot;)&lt;br /&gt;
		alert(&amp;quot;Error: &amp;quot;+xhr.status+&amp;quot;: &amp;quot;+xhr.statusText);&lt;br /&gt;
	});&lt;br /&gt;
&lt;br /&gt;
	});&lt;br /&gt;
&lt;br /&gt;
})(jQuery);&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Highcharts - Base de dades&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script src=&amp;quot;http://code.highcharts.com/highcharts.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;http://code.highcharts.com/modules/exporting.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;container&amp;quot; style=&amp;quot;min-width: 400px; height: 400px; margin: 0 auto&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;container2&amp;quot; style=&amp;quot;min-width: 400px; height: 400px; margin: 0 auto&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fem una crida AJAX (amb JQuery) al fitxer generar_fotos_stats.php. Les dades obtingudes es fiquen en dues matrius: dades0[] que representa l'exi X, i dades1[] que representa l'eix Y. Les matrius s'aconsegueixen amb la funció split().&lt;br /&gt;
&lt;br /&gt;
El quid del problema és entendre bé la funcionalitat de les gràfiques, i definir bé la variable ''options'' que és molt potent. El millor és mirar diferents demos a la pàgina web i quedar-se amb la més correcta.&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, maig 2013&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
</feed>