witam
Coś tam stworzylem juz wiem jak nawet. Narazie zrobiłem generowanie wykresu zarezerwowanych pokoi na podstawie dni miesiaca.
Statystyka wyświetlana jest na jednej stronie ststystyki.php - na niej znajduje sie pływająca ramka do ktorej ladowany jest sktypt stat_miesiac.php
Podaje kod:
<?php
$miesiac = $_GET['miesiac'];
function gen_wykres($dane, $width = 800, $height = 250, $dist = 10, $tlo = 'grad.jpg', $font = 'verdana.ttf')
{
$wykres = imagecreatetruecolor($width, $height);
$bcg_image = imagecreatefromjpeg($tlo);
$background = imagecolorat($bcg_image, 0, imagesy($bcg_image) - 1);
imagefill($wykres, 0, 0, $background);
imagecopyresampled($wykres, $bcg_image, 0, 0, 0, 0, $width, imagesy($bcg_image), imagesx($bcg_image), imagesy($bcg_image));
$el_width = round(($width - $dist) / count($dane)); $mnoznik = ($height - ($dist * 2)) / $max;
foreach ($dane as $key => $value)
{
$colors[$key] = imagecolorallocate($wykres, $col, 200, 0);
$text_color[$key] = imagecolorallocate($wykres, 0, 0, 0);
$top = $height - ($dist) - $value * $mnoznik;
$left = $i * $el_width + $dist;
imagefilledrectangle($wykres, $left, $top, $left + $el_width - $dist, $height - $dist, $colors[$key]);
imagettftext
($wykres, 10
, 90
, $left + $el_width / 2
, $height - $dist - 2
, $text_color[$key], $font, $key.' - '.round($value * 100
/ $count_all, 2).' % Ilosc: '.$value);
$i++;
}
return $wykres;
}
include_once('db.php');
for ($i=1; $i<=31; $i++)
{
$stmt = "SELECT COUNT(id_rezerwacji) from rezerwacje
where (data_od = '".$rok."-".$miesiac."-".$i."')";
$result = $db_handle->query($stmt);
$row = $result->fetch_array();
$dane[$i] = $row[0];
}
header('Content-Type: image/png'); $wykres = gen_wykres($dane);
imagepng($wykres);
?>
Tak stworzony skrypt ładnie wyświetla mi wykres o rezerwacjach z miesiaca.
Jednak chcialbym aby była możliwość wybierania miesiecy z formularza i aby generował sie na nowo wykres z miesiaca który wybraliśmy.
Chciałem ten formularz wstawić do skryptu stat_miesiac.php gdzie znajduje sie całość generowania wykresu. Przypominam iż strona statystyki.php słuzy do oglądania wykresów które znajduja sie w iframe.
Jednak gdy wstawiam formularz do skryptu: podaje kod
<?php
<form action=stat_miesiac.php>
<select name=miesiac>
<option value=1>Styczeń</option>
<option value=2>Luty</option>
<option value=3>Marzec</option>
<option value=4>Kwiecień</option>
<option value=5>Maj</option>
<option value=6>Czerwiec</option>
<option value=7>Lipiec</option>
<option value=8>Sierpień</option>
<option value=9>Wrzesień</option>
<option value=10>Październik</option>
<option value=11>Listopad</option>
<option value=12>Grudzień</option>
</select>
<input type="submit" value="Wyślij">
</form>";
$miesiac = $_GET['miesiac'];
function gen_wykres($dane, $width = 800, $height = 250, $dist = 10, $tlo = 'grad.jpg', $font = 'verdana.ttf')
{
$wykres = imagecreatetruecolor($width, $height);
// cala reszta skryptu w niezmienionej formie - nie wstawilem bo to bedzie zbyt rozlazle
Jesli chce wstawic ów formularz do tego skryptu to wyskakuje mi błąd
Warning: Cannot modify header information - headers already sent bya ponizej nie ma wykresu który mialby sie wyswietlic a jest za to ciag jakich dziwnych znaków. Jednak sam formularz jest widoczny
Co zrobić aby mi wyswietlalo formularz w html oraz wykres wygenerowany przez biblioteke GD??
A może ma ktoś inny sposób? W sumie mozna by formularz umieścic na stronie statystyki.php ale wtedy musialbym w action wskazac skrypt generujacy wykres i wynikiem bedzie przeniesienie mnie na strone sktyptu z wykresem - jednak ja chcialbym wtedy wykres widziec na stronie głównej. Nie wiem czy sie da wysłać formularz do dwoch skryptów

Zreszta nie bede tutaj teraz mącił w tym poście.
Prosze o pomoc jesli chodzi o ten nagłowek. Co zrobic aby mi wyświetlalo formularz i wykres z GD??