JPgraph et ie7

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : JPgraph et ie7

par TomTom85 » 31 juil. 2008, 11:29

Voila tout le fichier courbe.php
<?php
	//Fichiers nécéssaires
	include ("../include/JPgraph/jpgraph.php");
	include ("../include/JPgraph/jpgraph_line.php");
	include ("../include/JPgraph/jpgraph_bar.php");
	include ("../include/JPgraph/jpgraph_pie.php");
	include ("../include/JPgraph/jpgraph_pie3d.php");
	require ("FoncReport.php");
	
	//Format des données
	/* $titre = {"Nom du graphe","Axe des X","Axe des Y","Axe des Y2","Type de graphe","min axe Y","max axe Y","min axe Y2","max axe Y2"}
	** Mois = 0 ; Valeur = 1
	** Graphe ligne = 0 ; Graphe baton = 1 ; Graphe accumulation = 2 ; Camembert = 3
	** 
	** $dataR[0] [nom] = {"nom de la courbe",0,"couleur"} 
	** $dataR[0][donnee] = {,0,1,2,3,4,5,6,7,8,9,10,11,etc} 
	*/	
	
	//Gestion des données pour le graphique
	if(!isset($_GET['titre']) || !isset($_GET['donnees']))
		echo "Erreur";
	else
	{
		//Récupération des titres
		$strT = $_GET['titre'];
		$titre = unserialize(urldecode(stripslashes($strT)));
		//$titre =  array("cou","Mois",0,"",0,0,0,0,0);
		
		//Récupération des valeurs
		$strD = $_GET['donnees'];
		$dataR = unserialize(urldecode(stripslashes($strD)));
		//$dataR = array(array("nom" => array("courbe",0,"orange"),"donnee" => array(1,2,3,4,5,6,7,8,9,1,2,3)));
	
		//Extraction des valeurs
		foreach($dataR as $numCourbe => $courbe)
		{
			foreach($courbe as $type => $tableau)
			{
				if(ereg("nom",$type)) //Nom
				{
					$yDataName[$numCourbe] = $tableau[0];
					$typeCourbe[$numCourbe] = $tableau[1];
					$couleurCourbe[$numCourbe] = $tableau[2];
				}
				else //Données
				{
					for($i=0 ; $i<sizeof($tableau) ; $i++)
						$yData[$numCourbe][$i] = $tableau[$i];
				}
			}
		}
	}

	//Affichage du graphe
	if($yData[0] != NULL)
	{		
		if($typeCourbe[0] == 3) //Camembert
		{
			//Création du graphe
			$graph = new PieGraph(700,400,"auto");
			$graph->SetShadow();
			
			//Initialisation des titres
				//img
			$graph->img->SetImgFormat("gif");
			$graph->title->Set($yDataName[0]);
			$graph->title->SetFont(FF_ARIAL,FS_NORMAL,12);
			
			//Création du camembert
			$piePlot = new PiePlot3D($yData[0]);
			$piePlot->SetSize(0.5);
			$piePlot->SetCenter(0.45);
			
			//Affichage du graphe
			$graph->add($piePlot);
			$graph->Stroke();
		}
		else
		{		
			//Initialisation des variables
			$i = 0;
			$j = 0;
			$k = 0;
			$barPlot = array();
			$accPlot = array();
			$linePlot = array();
			
			//Initialisation du graphe
			//Création du graphe
			$graph = new Graph(900,400,"auto");
			$graph->SetScale("textlin",$titre[5],$titre[6]);
			if($titre[2] != '0')
				$graph->SetY2Scale("lin",$titre[7],$titre[8]);
			//Initialisation des titres
			$graph->img->SetImgFormat("gif");
			$graph->img->SetMargin(60,200,20,40);
			$graph->title->Set($titre[0]);
			$graph->xaxis->title->Set($titre[1]);
			$graph->yaxis->title->Set($titre[3]);
			if($titre[2] != '0')
				$graph->y2axis->title->Set($titre[2]);
			$graph->title->SetFont(FF_ARIAL,FS_NORMAL,12);
			$graph->xaxis->title->SetFont(FF_ARIAL,FS_NORMAL,12);
			$graph->yaxis->title->SetFont(FF_ARIAL,FS_NORMAL,12);
			if($titre[2] != '0')
				$graph->y2axis->title->SetFont(FF_ARIAL,FS_NORMAL,12);
			$graph->SetMarginColor('#F7F7F7');
			$graph->SetShadow();
			//Belle image de fond
			//$graph->SetBackgroundImage('Includes/FrancePl.jpg',BGIMG_CENTER);
			//Axe des X
			if($titre[4]); //Valeur
			else //Mois
				$graph->xaxis->SetTickLabels($gDateLocale->GetShortMonth());
			//Tableau de couleurs
			$couleur = array("red","blue","orange","darkgreen","yellow","darkred","brown","green","navy","");
				
			//Création des courbes
			for($numeroCourbe=0 ; $numeroCourbe<sizeof($yData) ; $numeroCourbe++)
			{
				//Couleur
				$couleurChoisie = (($couleurCourbe[$numeroCourbe] != null) ? $couleurCourbe[$numeroCourbe] : $couleur[$numeroCourbe]);
				
				if($typeCourbe[$numeroCourbe] == 1) //Bar Graphe
				{
					$barPlot[$i] = new BarPlot($yData[$numeroCourbe]);
					$barPlot[$i]->SetFillColor($couleurChoisie."@0.5");
					$barPlot[$i]->SetShadow("[email protected]");
					$barPlot[$i]->SetLegend($yDataName[$numeroCourbe]);
					$i++;
				}
				else if($typeCourbe[$numeroCourbe] == 2) //Accumulation Graphe
				{
					$accPlot[$j] = new BarPlot($yData[$numeroCourbe]);
					$accPlot[$j]->SetFillColor($couleurChoisie."@0.5");
					$accPlot[$j]->SetShadow("[email protected]");
					$accPlot[$j]->SetLegend($yDataName[$numeroCourbe]);
					$j++;
				}
				else //Courbe 0
				{
					$linePlot[$k] = new Lineplot($yData[$numeroCourbe]);
					$linePlot[$k]->SetColor($couleurChoisie);
					$linePlot[$k]->SetWeight(2);
					$linePlot[$k]->SetLegend($yDataName[$numeroCourbe]);
					//Marque
					$linePlot[$k]->mark->SetType(MARK_SQUARE);
					$linePlot[$k]->mark->SetColor($couleurChoisie);
					$linePlot[$k]->mark->SetFillColor($couleurChoisie."@0.5");
					$linePlot[$k]->mark->SetWidth(3);
					if($titre[2] != '0')
					{
						$linePlot[$k]->SetBarCenter(); //Centre la ligne
						$graph->AddY2($linePlot[$k]);
					}
					else
						$graph->Add($linePlot[$k]);
					$k++;
				}
			}

			//Ajout des courbes au graphe
			if($i != 0) //Bar graphe
			{
				$groupBarPlot = new GroupBarPlot($barPlot);
				$groupBarPlot->SetWidth(0.6);
				$graph->Add($groupBarPlot);
			}
			if($j != 0) //Accumulation
			{
				$accBarPlot = new AccBarPlot($accPlot);
				$accBarPlot->SetWidth(0.6);
				$graph->Add($accBarPlot);
			}

			//Légendes position
			$graph->legend->Pos(0.01,0.5,"right","center");

			//Affichage du graphe
			$graph->Stroke();
		}
	}
	else
		echo "Erreur : données sur l'axe Y non valides !!!";
?>

par Calimero » 30 juil. 2008, 09:45

On peut voir le code de Courbe.php ?

Sinon, tu peux aussi chercher dans l'error log du serveur.

par TomTom85 » 30 juil. 2008, 09:23

il veux enregistrer le graphe affiché en bmp !

Justement il ne veux pas afficher l'image, et il ne me dit rien.

Y a un autre moyen de lui faire afficher les messages d'erreur que de cliquer dessus ?

D'autres idées?

Est ce qu'il y a une taille max pour le chemin d'une image sous ie7 ?
Car je passe plein de données dans l'appel et donc j'ai un chemin super long !

Merki

par Calimero » 29 juil. 2008, 21:57

Dans IE7, fais un clic droit sur la "croix rouge", puis "Afficher l'image".

(Ce serait dommage de se priver des messages d'erreur quand même, non ?)

JPgraph et ie7

par TomTom85 » 29 juil. 2008, 18:27

Bonjour

J'utilise la bibliothèque JPgraph pour afficher des graphiques basiques

J'ai créer un fichier courbe.php auquel je passe mes paramètres pour créer le graphique.

Sous firefox, nikel, tout marche

Sous IE7 juste la croix rouge.

Ce code marche :
			//Graphique
			echo "<br><div class='img'>";
				//Sélection du type de courbe et de la couleur
				$i = 0;
				$donnee["donnee"] = array(10,11,10,11,12,13,15,16,18,19,10,12);
				$donnee["nom"] = array("Test");
				$donneeG1[$i++] = caracCourbe($donnee,1,"orange");
				$donneeG1[$i++] = caracCourbe($valTableau["nb_n_1"],1,"red");
				$donneeG1[$i++] = caracCourbe($valTableau["nb_projets_cumule"],0,"orange");
				$donneeG1[$i++] = caracCourbe($valTableau["nb_n_1_cumule"],0,"red");
				$titreG1 = array("En nombre","Mois","Nb cumulés","Nb",0,0,0,0,0);
				//Envoi des données
				echo "<img src='../prg/Courbe.php?titre=".addslashes(urlencode(serialize($titreG1)))."&donnees=".addslashes(urlencode(serialize($donneeG1)))."'>".
			"</div><br>";
		
Ce code marche pas :
			//Graphique
			echo "<br><div class='img'>";
				//Sélection du type de courbe et de la couleur
				$i = 0;
				$donneeG1[$i++] = caracCourbe($valTableau["nb_projets"],1,"orange");
				if($toutesLignes) $donneeG1[$i++] = caracCourbe($valTableau["nb_objectifs"],1,"blue");
				$donneeG1[$i++] = caracCourbe($valTableau["nb_n_1"],1,"red");
				$donneeG1[$i++] = caracCourbe($valTableau["nb_projets_cumule"],0,"orange");
				if($toutesLignes) $donneeG1[$i++] = caracCourbe($valTableau["nb_objectifs_cumule"],0,"blue");
				$donneeG1[$i++] = caracCourbe($valTableau["nb_n_1_cumule"],0,"red");
				$titreG1 = array("En nombre","Mois","Nb cumulés","Nb",0,0,0,0,0);
				//Envoi des données
				echo "<img src='../prg/Courbe.php?titre=".addslashes(urlencode(serialize($titreG1)))."&donnees=".addslashes(urlencode(serialize($donneeG1)))."'>".
			"</div><br>";
		
La seule différence est le nombre de courbes, et toutes les données fonctionnes en les inversant.
Voici l'organisation des données :
//Format des données
/* $titre = {"Nom du graphe","Axe des X","Axe des Y","Axe des Y2","Type de graphe","min axe Y","max axe Y","min axe Y2","max axe Y2"}
** Mois = 0 ; Valeur = 1
** Graphe ligne = 0 ; Graphe baton = 1 ; Graphe accumulation = 2 ; Camembert = 3
**
** $dataR[0] [nom] = {"nom de la courbe",0,"couleur"}
** $dataR[0][donnee] = {,0,1,2,3,4,5,6,7,8,9,10,11,etc}
*/

Quelqu'un aurai t'il une idée?

Merci d'avance

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]