11521 sujets

JavaScript, DOM et API Web HTML5

Bonjour,
Je rencontre un problème, j'ai construis un graph stackedBar100 pour mon site qui utilise des données de ma bdd, malheureusement pour certaines personnes, certaines lignes de mon graph (ex: AuditA_F) sont = 0 dans les deux dataPoints donc quand je teste ça me fait planter ma page.

Avez vous des idées comment pouvoir laisser à 0 sans que ça plante? N’hésitez pas si j'ai pas été assez claire

Voici un morceau de mon code:



<?php 


$dataPoints1 = array(
	array("label"=> "Audit Annuel", "y"=> $chart["AuditA_F"]),
	array("label"=> "Audit par Sondage Obligatoire", "y"=> $chart["AuditCS_F"]),
	array("label"=> "Audit Initial", "y"=> $chart["AuditInit_F"]),
	array("label"=> "Contrôle", "y"=> $chart["Controle_F"]),
	array("label"=> "Audit Supplémentaire", "y"=>$chart["AuditSupp_F"]),
	
);
 
$dataPoints2 = array(
	array("label"=> "Audit Annuel", "y"=> $chart["AuditA_NF"],),
	array("label"=> "Audit par Sondage Obligatoire", "y"=> $chart["AuditCS_NF"]),
	array("label"=> "Audit Initial", "y"=> $chart["AuditInit_NF"],),
	array("label"=> "Contrôle de Marque", "y"=> $chart["Controle_NF"]),
	array("label"=> "Audit Supplémentaire", "y"=> $chart["AuditSupp_NF"]),

);


?>

<!DOCTYPE HTML>
<html>
	<head>
		<script type="text/javascript" src="canvas.js"></script>
		<script type="text/javascript" src="jquery_canvas.js"></script>
		<link href="../css/tableau_de_bord.css" rel="stylesheet" type="text/css" media="all" />

	</head>
	<body>

		<div id="chartContainer" style="height: 300px; width: 100%;"></div>

		</br>
		</br>
		
		<p style="text-align: left; color:black; font-family: 'MontSerrat'"> <?php echo $output;?> </p>
	</body>
</html>

<script>
	window.onload = function () {

		var options = {
			animationEnabled: true,
			theme: "light1", //"light1", "dark1", "dark2"
			title:{
				text: "Suivi " ,
				fontFamily: "MontSerrat"
            
			},
			axisY:{
				interval: 10,
				suffix: "%"
			},
			toolTip:{
				shared: true
			},
			data:[{
				type: "stackedBar100",
				toolTipContent: "{label}<br><b>{name}:</b> {y} (#percent%)",
				showInLegend: true, 
				name: "Fait",
				dataPoints: <?php echo json_encode($dataPoints1, JSON_NUMERIC_CHECK); ?>
			},
			{
				type: "stackedBar100",
				toolTipContent: "<b>{name}:</b> {y} (#percent%)",
				showInLegend: true, 
				name: "Non Fait",
				dataPoints: <?php echo json_encode($dataPoints2, JSON_NUMERIC_CHECK); ?>
			} 
		]
		};

	$("#chartContainer").CanvasJSChart(options);
	}
</script>

Modifié par Elnofey (10 Sep 2020 - 14:38)
Modérateur
Bonjour, ça sent la division par 0 tout cela.

Mon conseil serait de mettre à jour les librairies, sur la version officielle, cela ne plante pas.
Bonjour, oui je le sentais..
Je vous remercie mais quelles librairies svp ?

A l'heure actuelle j'utilise ça
<script type="text/javascript" src="https://canvasjs.com/assets/script/jquery-1.11.1.min.js"></script>
<script type="text/javascript" src="https://canvasjs.com/assets/script/jquery.canvasjs.min.js"></script>
Modifié par Elnofey (10 Sep 2020 - 15:00)