Newsgroup: it.comp.www.php
Titolo: jpgraph

ciao
sto facendo esperimenti con jpgraph e non mi funzionano gran che le
cose:
se metto qlc istruzione html prima di quelle in php c'e il problema
dell''header: per esempio
<html>
<?php
include ("../jpgraph.php");
include ("../jpgraph_line.php");
....
il grafico non si vede piu'  :-(  e genera un sacco di righe con
caratteri strani
se tolgo <html> il grafico si vede
se metto qlc riga di html dopo la chiusura dello script php che genera
il grafico non si vede nulla generato dall'html, solo il grafico
Qlc ha gia' risolto in passato il problema



Stai sbagliando il modo di utilizzare il prodotto.
Il manuale e' abbastanza chiaro.
Jpgraph genera un'immagine. (header = immagine png o jpeg)
Puoi usarlo SOLO in un tag IMG oppure isolato.
Ecco due semplici esempi che puoi provare 
..............................file myhtm
<HTML>
<center>
<img src='/jpgraph-1.12.1/src/examples/example17.php'>
</center>
</HTML>
...............................file myphp
<?php
session_start();
echo("<HTML>");
echo("<center>");
echo("<img src='/jpgraph-1.12.1/src/examples/example17.php'>");
echo("</center>");
echo("</HTML>");
?>
Il secondo esempio e' il primo convertito in PHP.
In questo esempio puoi creare una variabile in sessione e poi utilizzarla all'interno
di example17.php per alterare il grafico (es i valori dei dati del grafico)
Ciao
Roberto

caratteri strani
Ovviamente, perche' quel file li' che hai tu genera una IMMAGINE. Se
metti roba PRIMA, il browser non capisce l'immagine e vedi cacca; se
metti roba DOPO, il browser non te la fa vedere.
Ti servono DUE file PHP, il primo cosi'
<HTML>
<!-- primofile.php -->
<?
	print "Questo e' il file HTML, dove c'e' l'HTML, mentre";
	print " questa qua sotto e' l'immagine:";
	print "<IMG SRC=\"secondofile.php\">";
?>
</HTML>
e il secondo e' il file che usa le jpgraph.
Se ti servono piu' grafici sugli stessi dati, ti conviene calcolarti
tutti i dati nel primofile.php, *PRIMA* dell'output HTML, e salvarli
in un file temporaneo o in una sessione che poi passerai a *tutti* i
file PHP che genereranno i grafici (ogni grafico, un file).
Per esempio spari il vettore $dati in un file "X07345.DAT", e poi in
primofile.php:
	<IMG SRC="secondofile.php?id=07345">
In secondofile.php,
	$dati = unserialize(implode('',file("X$_REQUEST[id].DAT")));
...anche secondofile.php ha a disposizione lo stesso vettore $dati e
puo' creare rapidissimamente il grafico.
Ti servira' un sistema per generare degli ID affidabili e fare fuori
i file .DAT obsoleti, se no ti riempiono il disco.
Ma e' il meccanismo delle sessioni 8-D
Leonardo

di example17.php per alterare il grafico (es i valori dei dati del grafico)
???????
ti ringrazio dell'aiuto e spero me ne darai altro


ciao Leonardo
coem dicevo anche a roberto ho iniziato 3 settimane fa ad usare php e
la seconda parte, che mi spieghi quella dei dati e dei file temporanei
e' buoi completo. Saresti cosi gentile da essere + "didattico"  :-)
grazie

e' buoi completo. Saresti cosi gentile da essere + "didattico"  :-)
Nel primo file tu fai dei calcoli, diciamo che vuoi mettere su un diagramma
con tre barre e una torta esplosa con tre fette.
Per cui normalmente tu calcoleresti $y1, $y2, $y3 e $ySomma.
Quello che devi fare e' mettere la parte di calcolo all'inizio di primofile
(prima del codice HTML) e memorizzare i dati in un vettore, chiamiamolo per
esempio $dati:
<?
	$dati['y1'] = ...
	$dati['y2'] = ...
	$dati['y3'] = ...
	$dati['ySomma'] = $dati['y1'] + $dati['y2'] + $dati['y3'];
?>
Poi, sempre in primofile, apri una "sessione", e registri $dati dentro alla
sessione.
Il PHP invia il cookie di sessione, se necessario, e siccome ancora non hai
prodotto alcun output, la cosa funziona a meraviglia.
A questo punto metti l'HTML:
	<HTML>
		<BODY>
			<IMG SRC="barre.php">
			<IMG SRC="torta.php">
		</BODY>
	</HTML>
Il browser si carica barre.php, dove tu riapri la sessione e scopri d'avere
a disposizione il vettore $dati. barre.php carica la JPGraph, e crea usando
$dati un diagramma a barre.
torta.php fara' la stessa cosa.
Oltre a $dati puoi registrare anche un vettore di layout contenente se vuoi
alcuni parametri di visualizzazione:
	$layout['ColoreBarra1'] = '#ff0000';
	$layout['ColoreSpicchio2'] = '#ff7700';
eccetera.
Leonardo
-- 
Time's angles, mages tell, conceal a place
incredible, beyond the mundane mind;
night-shrouded and between the seas of space
dread creatures drift in the ageless winds.