Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wstawianie wykresów (czy też innych dynamicznych obrazów) - jak to rowiązać?
Forum PHP.pl > Forum > PHP
Raph
Załóżmy, że mam plik index.php, który ma formularz i chciałbym, że po naciśnięciu przycisku z tego formularza wygenerowany był wykres na podstawie danych z formularza (żądanie wysyłane przy pomocy AJAX). Chciałbym użyć do tego jpgraph. Problem polega na tym, że sam kod generujący wykres musi być osobnym plikiem, który jest potem wstawiany: <img src="plik_z_obrazkiem.php" />. Nie mogę niestety wstawić kodu generującego obrazek bezpośrednio do index.php, bo przed wykresem już coś jest (choćby ten formularz) i będzie problem z nagłówkami. Na sztywno kodu do "plik_z_obrazkiem.php" też nie mogę wpisać, bo ma to być przecież sprametryzowane. 

Pytanie - jak to elegancko rozwiązać?
arecki
Przez Ajaxa zwracaj tylko:
  1. <img src="plik_generujacy_obrazek.php?parametr1=wartosc1&parametr2=wartosc2"/>

I wpisuj do DIV'a jakiegoś a powinien się obrazek wygenerować. Przecież tak naprawdę możesz GET'em do pliku generującego przesłać wszystko i na tej podstawie sparametryzować wyniki.
Raph
Rozwiązanie byłoby super, tylko sobie właśnie uświadomiłem, że nieprecyzyjnie wyjaśniłem, bo na podstawie parametrów z forma wyciągane są także dane z bazy, które jako tablice, mają być też parametrami generowania wykresów. 

Tutaj pewnie już pozostają sesje lub cookie. A może serializacja takiej tablicy i przekazanie jako parametr linku, byłaby dobrym pomysłem? 
arecki
Zastanawiam się jak by to zrealizować i na szybko przychodzi mi taki pomysł:
- formularz przesyła się przez AJAX do pliku np. generujWykres.php
- plik generujWykres.php generuje wykres i zapisuje go w miejscu niedostępnym dla userów zewnętrznych z nazwą wygenerowaną na podstawie konkretnych danych z formularza. Sam zwraca to coś takiego: <img src="pobierzWykres.php?nazwaUnikalnaWygenerowanaZFormularza"/>
- plik pobierzWykres.php sprawdza czy istnieje plik o takiej nazwie i zwraca go. Jeżeli nie to można sobie wygenerować obrazek typu "no photo".

Myślę że największym problemem może być generowanie unikalnej nazwy, ponieważ wydaje mi się że warto mieć możliwość uzyskania przesłanych parametrów z nazwy unikalnej i odwrotnie. No i oczywiście zapobiega to przeciążaniu serwera generowaniem za każdym razem wykresów ponieważ plik generujWykres.php mógłby sprawdzać czy już wcześniej takiego wykresu nie wygenerował.

Wiem, że zawile brzmi ale może gra jest warta świeczki ? Wszystko zależy od potrzeb smile.gif
Raph
Jest to jakieś rozwiązanie, ale raczej zostanę przy tej serializacji. Poza tym ta klasa do generowania wykresów ma obsługę cache zaimplementowaną jakby co, więc chyba nie ma potrzeby komplikować sobie życia i pisać swoją obsługę cache.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.