Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

PHP HTML SQL - Jak zrobić odnośnik USEMAP w skrypcie wołającym grafikę

adam220 22 Cze 2015 15:01 483 5
  • #1 22 Cze 2015 15:01
    adam220
    Poziom 14  

    Witam,
    mam 2 skrypty php.
    Pierwszy wytwarza obrazek za pomocą biblioteki graficznej
    takie 2 prostokąty:

    Code:
    1.php
    
    <?
    $rysunek = imagecreate ($x,$y);
    [...]
    imagerectangle($rysunek,$x1,$y1,$x2, $y2, $czarny);
    imagerectangle($rysunek,$x3,$y3,$x4, $y4, $czerwony);
    [...]
    header("content-type: image/png");
    imagepng ($rysunek);
    ?>


    Drugi odwołuje się do pierwszego rysując go w tabelce na stronie:
    Code:
    2.php
    
          <?
    [...]
    echo "<IMG src='1.php >" ;    //załadowanie obrazka
    [...]
    ?>

    Chcę zrobić odnośniki na tych dwóch narysowanych prostokątach. Chciałbym użyć mapy graficznej
    Code:
    echo "<IMG src='1.php? USEMAP=#mapa>" ;  
    
    echo "<MAP NAME= mapa>";
    echo "<AREA SHAPE=rect COORDS=??????>"  ;
    echo "</MAP>";

    i tu pojawia się kłopot gdyż współrzędne prostokątów x1 x2 x3 x4 są doskonale znane w skrypcie 1.php ale nie są znane w skrypcie 2.php który wywołuje użytkownik. Nie są to sztywne dane tylko zmienne wyczytane z bazy.
    Pytanie: jak zrobić te odnośniki nie uruchamiając powtórnie tej samej kwerendy w skypcie 2.php?

    Może jest inny sposób niz mapa graficzna?

    0 5
  • #2 22 Cze 2015 22:05
    LED5W
    Poziom 32  

    Nie możesz uzyskać dostępu do wartości zmiennych w 1.php z 2.php, bo on jest (o ile jest) wykonywany po 2.php.
    Nie możesz potrzebnych wartości policzyć w 2.php i przekazać w URL?

    0
  • #3 22 Cze 2015 22:24
    adam220
    Poziom 14  

    Żeby uprościć problem sprowadziłem liczbę prostokątów do 2, ale w rzeczywistości jest ich kilkadziesiąt, powiedzmy 30-60. Nie nadaje się to na URL.
    Może niepotrzebnie zafiksowałem się na mapkę graficzną, może jakieś inne podejście?

    1
  • Pomocny post
    #4 22 Cze 2015 23:35
    LED5W
    Poziom 32  

    Wartości można zapisać w sesji, a dla obrazka wygenerować identyfikator i dodać do URL, żeby nie było problemu przy kilku kartach lub obrazkach.
    Czy to musi być pojedynczy obraz?

    3
  • #5 23 Cze 2015 10:08
    adam220
    Poziom 14  

    A czy mógłbyś na przykładzie mojego kodu, albo ogólnie, w kilku liniach napisać początkującemu kawałek kodu jak zapisać dane w sesji tak żeby drugi wykonywany skrypt mógł odczytać które zapisał pierwszy?
    I o co chodzi z tym identyfikatorem?

    1
  • #6 23 Cze 2015 18:51
    LED5W
    Poziom 32  

    adam220 napisał:
    I o co chodzi z tym identyfikatorem?
    Możliwe, że obeszło by się bez niego, ale takie rozwiązanie zagwarantuje, że nie zobaczysz niewłaściwego obrazka. Przykład: wchodzisz na stronę z tym obrazkiem, otwierasz tą samą w nowej karcie, wracasz na pierwszą i odświeżasz sam obraz. Jeżeli w sesji będziesz trzymać dane tylko jednego obrazu to zobaczysz na pierwszej karcie ten z drugiej. Chyba, że to nie przeszkadza...
    Napisz do czego to ma służyć.
    Na początek spróbuj bez identyfikatora:
    Kod: php
    Zaloguj się, aby zobaczyć kod
    Albo lepiej nie twórz tablicy, tylko zapakuj potrzebne dane w klasę. Zdefiniuj ją w osobnym pliku, który dołączysz w obu pozostałych przez require_once.

    0