Bonjour à tous,

Pardonnez si je m'exprime mal, mais comme c'est la première fois que j'utilise l' AJAX, j'ai peur de faire des erreurs...

En fonction d'une demande que l'on m'a fait, la meilleure solution que j'ai pu trouvé pour y répondre c'est d'utiliser AJAX.
Pour faire une petite introduction, mon système est le suivant:
J'ai une carte, google map, avec des marqueurs dessus, en cas de clique sur l'un deux, un graph (highcharts) se lancent avec les données qui lui sont propre. En gros cela fonctionne, sauf qu'il me prend à chaque fois l'avant dernier résultat de ma fonction AJAX, je dois donc cliquer 2 fois sur mon marqueur afin d'afficher le bon graph:

En cas de clique sur mon marqueur: (j'ai supprimé des bouts, qui n'ont aucun rapport avec mon problème)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
var names = [];
function graph_mesure(NOM,BDQA) {
	$.get(
		'pol_graph.php',
		{name: NOM, n_bdqa: BDQA},
		function(result){
			pol = result;
			names = pol.split(',');
		},
		'text'
	);
	var selection ="";
	if (names !=""){
		$.each(names, function(i, name) {
			$.getJSON('graph/donnees/'+ name +'_'+BDQA+'_'+NOM+'.json',	function(data) {
				seriesOptions[i] = {
					name: name,
					data: data,
					color: getColor[name],
					selected: true,
					visible: true,
					dataGrouping: {
						units: [[
							'hour',
						],]
					}
				};
				// As we're loading the data asynchronously, we don't know what order it will arrive. So
				// we keep a counter and create the chart when all the data is loaded.
				seriesCounter++;
				if (seriesCounter == names.length) {
					createChart();
				}
			});
		});
	};
};
le fichier php appelé par la fonction:
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php 
$NOM = $_GET['name'];
$BDQA = $_GET['n_bdqa'];
$name = null;
$lien = '_'.$BDQA.'_'.$NOM.'.json';
$lien_NO2 = 'graph/donnees/NO2_'.$BDQA.'_'.$NOM.'.json';
if (file_exists($lien_NO2)){
	$name .= 'NO2,';
}
$lien_O3 = 'graph/donnees/O3_'.$BDQA.'_'.$NOM.'.json';
if (file_exists($lien_O3)){
	$name .= 'O3,';
}
$lien_PM10 = 'graph/donnees/PM10_'.$BDQA.'_'.$NOM.'.json';
if (file_exists($lien_PM10)){
	$name .= 'PM10,';
}
$name = substr($name,0,-1);
echo $name;
?>
Du coup pour illustrer tout ça. Si je clique sur un marqueur qui possède les fichier NO2 et O3, mon console.log m'affiche bien comme retour ["NO2","O3"] par contre le reste de mon programme ne récupère pas ce résultat. Si je reclique dessus si ça marche.
Si ensuite je clique sur un autre marqueur qui possède seulement le fichier PM10 (par exemple, mon console.log m'affiche bien comme retour ["PM10"] par contre le reste du programme récupère ["NO2,"O3"] etc... (je ne sais pas si je suis bien clair.

Du coup, je ne sais pas si j'ai fait une bourde du côté de l'AJAX, ou si j'ai fait quelque chose de mal en javascript...

En vous remerciant d'avance.

Antoine