Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wykres w GD i pobieranie danych z formularza
Forum PHP.pl > Forum > Przedszkole
bartek-z
Mam stworzony kod do wykonywania wykresu:
wykres.php
  1. <? php
  2. header ("Content-type: image/png");
  3.  
  4. /* do testow byly tu przerzucone zmienne z formularza i wszystko wtedy dzialalo, 
    jednak nie mozna tego zostawic w ten sposob poniewaz konieczne sa wyliczenia wysw
    ietlane w poctaci echo czy printf
  5. */ 
  6. $img=imagecreate (500, 500);
  7. $orange=imagecolorallocate ($img, 220, 210, 60);
  8. $black=imagecolorallocate ($img, 0, 0, 0);
  9. $white=imagecolorallocate ($img, 225, 225, 225);
  10. imageline ($img, 10, 490, 490, 490, $black);
  11. imageline ($img, 10, 5, 10, 490, $black);
  12.  
  13. $x0=490-$odsiew_p0;
  14. $x1=490-$odsiew_p1;
  15. $x2=490-$odsiew_p2);
  16. $x3=490-$odsiew_p3);
  17. $x4=490-$odsiew_p4);
  18. $x5=490-$odsiew_p5);
  19. $x6=490-$odsiew_p6);
  20. $x7=490-$odsiew_p7);
  21. $x8=490-$odsiew_p8);
  22. $x9=490-$odsiew_p9);
  23. $x10=490-$odsiew_p10);
  24. $y0=100;
  25. $y1=118;
  26. $y2=154;
  27. $y3=197;
  28. $y4=215;
  29. $y5=255;
  30. $y6=280;
  31. $y7=323;
  32. $y8=341;
  33. $y9=363;
  34. $y10=406;
  35.  
  36. imageline ($img, $y0, 5, $y0, 490, $white);
  37. imageline ($img, $y1, 5, $y1, 490, $white);
  38. imageline ($img, $y2, 5, $y2, 490, $white);
  39. imageline ($img, $y3, 5, $y3, 490, $white);
  40. imageline ($img, $y4, 5, $y4, 490, $white);
  41. imageline ($img, $y5, 5, $y5, 490, $white);
  42. imageline ($img, $y6, 5, $y6, 490, $white);
  43. imageline ($img, $y7, 5, $y7, 490, $white);
  44. imageline ($img, $y8, 5, $y8, 490, $white);
  45. imageline ($img, $y9, 5, $y9, 490, $white);
  46. imageline ($img, $y10, 5, $y10, 490, $white);
  47.  
  48. imageline ($img, 10, 290, 490, 290, $white);
  49.  
  50. imageline ($img, 10, 490, $y0, $x0, $black);
  51. imageline ($img, $y0, $x0, $y1, $x1, $black);
  52. imageline ($img, $y1, $x1, $y2, $x2, $black);
  53. imageline ($img, $y2, $x2, $y3, $x3, $black);
  54. imageline ($img, $y3, $x3, $y4, $x4, $black);
  55. imageline ($img, $y4, $x4, $y5, $x5, $black);
  56. imageline ($img, $y5, $x5, $y6, $x6, $black);
  57. imageline ($img, $y6, $x6, $y7, $x7, $black);
  58. imageline ($img, $y7, $x7, $y8, $x8, $black);
  59. imageline ($img, $y8, $x8, $y9, $x9, $black);
  60. imageline ($img, $y9, $x9, $y10, $x10, $black);
  61.  
  62. imagepng ($img);
  63. ?>

Nastepnie lacze to z:
oblicz.php
  1. <? php
  2. $dane=$_POST["pole01"]; 
  3. .
  4. .
  5. .
  6. .dane pobierane z formularza
  7. .
  8. .
  9. .
  10. $dane=$_POST["pole010"]; 
  11.  
  12. (...) inne liczenie dzialajace prawidlowo
  13.  
  14. echo "<IMG src='wykres.php'>";
  15. ?>


Mam ladne tlo, ladne linie i osie, ale nie mam danych wyslanych z formularza... Jesli dane wysle bezposrednio do wykres.php (oczywiscie z Ctrl+C zmienne z oblicz.php, Ctrl+V do wykres.php) to wszystko jest ok (mam wykresik). Jednak gdy to robie przez oblicz.php to mam samo "tlo" bez danych.
MatheW
Do wykres.php prześlij dane poprzez GET. Czyli np. wykres.php?pasek1=33&pasek2...
bartek-z
W jakim celu mam wysylac do wykres.php? Dane sa przesylane do oblicz.php i tam sa przeliczane (kilka wzorow i wynikow), a na koniec maja byc pokazane w postaci wykresu (kod pobrany z wykres.php).
MatheW
A skąd wykres.php ma wiedziec co pokazać??
bartek-z
Wiec jak mam przeslac dane skoro ten plik nie jest uzywany w sposob bezposredni... przyznam, ze po prostu nie wiem jak to zrobic. Dane (z wykresem) maja byc wyswietlone w pliku oblicz.php i tam sa przekazywane z formularza...

Jezeli wysylam dane bezposrednio do wykres.php to nie ma znaczenia czy jest to $_GET czy $_POST, jednak wtedy odpadaja jakie kolwiek znaczniki htmlowe. Ja chce to wrzucic do oblicz.php, ale neistety nie przejmuje danych z formularza...

Jezleli jednak mam przekazac dane do wykres z pomoca GET to nie mam pojecia jak to zrobic (przypominam, ze do oblicz.php jest on wrzucony za pomoca
  1. <?php
  2. echo "<IMG src='wykres.php'>";
  3. ?>
kwiateusz
o ile rozumiem to chyba tak
  1. <?php
  2. echo "<IMG src='wykres.php?dane=1&dane2=2'>";
  3. ?>
bartek-z
Czyli jesli przesle dane z oblicz.php w nastepujacy sposob:
  1. <?php
  2. echo "<IMG src='wykres.php?$x0&$x1&$x2&$x3&$x4&$x5&$x6&$x7&$x8&$x9&$x10'>";
  3. ?>

To powinny one znalesc sie w wykres.php

add:
  1. <?php
  2. header ("Content-type: image/png");
  3.  
  4. $x0w=$_GET["x0"]; 
  5. $x1w=$_GET["x1"];
  6. $x2w=$_GET["x2"]; 
  7. $x3w=$_GET["x3"];
  8. $x4w=$_GET["x4"]; 
  9. $x5w=$_GET["x5"];
  10. $x6w=$_GET["x6"]; 
  11. $x7w=$_GET["x7"];
  12. $x8w=$_GET["x8"]; 
  13. $x9w=$_GET["x9"];
  14. $x10w=$_GET["x10"];
  15.  
  16. $y0w=100;
  17. $y1w=118;
  18. $y2w=154;
  19. $y3w=197;
  20. $y4w=215;
  21. $y5w=255;
  22. $y6w=280;
  23. $y7w=323;
  24. $y8w=341;
  25. $y9w=363;
  26. $y10w=406;
  27.  
  28. $img=imagecreate (500, 500);
  29. $orange=imagecolorallocate ($img, 220, 210, 60);
  30. $black=imagecolorallocate ($img, 0, 0, 0);
  31. $white=imagecolorallocate ($img, 225, 225, 225);
  32. imageline ($img, 10, 490, 490, 490, $black);
  33. imageline ($img, 10, 5, 10, 490, $black);
  34.  
  35. imageline ($img, $y0w, 5, $y0w, 490, $white);
  36. imageline ($img, $y1w, 5, $y1w, 490, $white);
  37. imageline ($img, $y2w, 5, $y2w, 490, $white);
  38. imageline ($img, $y3w, 5, $y3w, 490, $white);
  39. imageline ($img, $y4w, 5, $y4w, 490, $white);
  40. imageline ($img, $y5w, 5, $y5w, 490, $white);
  41. imageline ($img, $y6w, 5, $y6w, 490, $white);
  42. imageline ($img, $y7w, 5, $y7w, 490, $white);
  43. imageline ($img, $y8w, 5, $y8w, 490, $white);
  44. imageline ($img, $y9w, 5, $y9w, 490, $white);
  45. imageline ($img, $y10w, 5, $y10w, 490, $white);
  46. imageline ($img, 10, 290, 490, 290, $white);
  47. imageline ($img, 10, 490, $y0w, $x0w, $black);
  48. imageline ($img, $y0w, $x0w, $y1w, $x1w, $black);
  49. imageline ($img, $y1w, $x1w, $y2w, $x2w, $black);
  50. imageline ($img, $y2w, $x2w, $y3w, $x3w, $black);
  51. imageline ($img, $y3w, $x3w, $y4w, $x4w, $black);
  52. imageline ($img, $y4w, $x4w, $y5w, $x5w, $black);
  53. imageline ($img, $y5w, $x5w, $y6w, $x6w, $black);
  54. imageline ($img, $y6w, $x6w, $y7w, $x7w, $black);
  55. imageline ($img, $y7w, $x7w, $y8w, $x8w, $black);
  56. imageline ($img, $y8w, $x8w, $y9w, $x9w, $black);
  57. imageline ($img, $y9w, $x9w, $y10w, $x10w, $black);
  58. imagepng ($img);
  59. ?>

Niestety dane nie sa przekazywane...
MatheW
Kod
<img src="wykres.php?x0=45&x1=24&....  />
za 45, 24 wstaw sobie dane, które chcesz przekazać.

@bartek-z Jesteś żałosny, uważając to za zart. Pokazałem Ci jak przesyłać dane, lecz ty dalej tego nie pojąłeś. Nie mając elementarnej wiedzy posuwasz się do drwienia z mojej pomocy. Bardzo ładnie.
bartek-z
MatheW... bardzo smieszne, oj bardzo.
Dane z formularza sa zmieniane (liczby w przedziale od 0 do np. 100) wiec wpisanie ich na sztywno jest bez sensu.

Dzieki pomocy Khaoxa uporalem sie z problemem:
oblicz.php
  1. <?php
  2. (...)
  3. echo "<IMG src='wykres.php?x0=$x0&x1=$x1&x2=$x2&x3=$x3&x4=$x4&x5=$x5&x6=$x6&x7=$x7&x8=$x8&x9=$x9&x10=$x10'>";
  4. (...)
  5. ?>

i wykres.php
  1. <?php
  2. header ("Content-type: image/png");
  3.  
  4. $x0w=$_GET["x0"]; 
  5. $x1w=$_GET["x1"];
  6. $x2w=$_GET["x2"]; 
  7. $x3w=$_GET["x3"];
  8. $x4w=$_GET["x4"]; 
  9. $x5w=$_GET["x5"];
  10. $x6w=$_GET["x6"]; 
  11. $x7w=$_GET["x7"];
  12. $x8w=$_GET["x8"]; 
  13. $x9w=$_GET["x9"];
  14. $x10w=$_GET["x10"];
  15.  
  16. (...)
  17. ?>

Dziala i to bardzo dobrze (wersja testowa: http://bartek.tox.pl/analiza). Jeszcze raz podziekowania dla Khaoxa.
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.