Afbeelding na form
Zolang ik niets doe met de gegevens van de form komt er een plaatje te voorschijn. (zonder coordinaten).
Na invoer, worden de coordinaten in een array gezet. Nu dacht ik de array door te kunnen lopen in het script waar het plaatje gemaakt wordt, echter op het moment dat ik dat doe, werkt het niet meer. Heeft iemand enig idee wat er fout gaat?
Hier het script dat ik gebruik om het plaatje te maken:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
$image1 = imagecreatetruecolor(968, 968);
// fill the background color
$bg1 = imagecolorallocate($image1, 0, 0, 0);
// choose a color for the ellipse
$col_ellipse = imagecolorallocate($image1, 255, 255, 255);
// choose a color for the line
$col_line = imagecolorallocate($image1, 255, 0, 0);
//Divide the image into 4 sectors with 2 lines
imageline ($image1, 484, 0, 484, 968, $col_line);
imageline ($image1, 0, 484, 968, 484, $col_line);
// draw the white ellipse
// gooi de coords in een array, en loop deze door met list/each en doe onderstaande.
while (list ($key, $val) = each ($_POST[famno_hs])) {
$parts=explode(" ","$val");
$famno = $parts[0];
$xpos = ($parts[1] * 8);
$ypos = ($parts[2] * 8);
imagefilledellipse($image1, $xpos, $ypos, 6, 6, $col_ellipse);
}
// output the picture
header("Content-type: image/png");
imagepng($image1);
?>
$image1 = imagecreatetruecolor(968, 968);
// fill the background color
$bg1 = imagecolorallocate($image1, 0, 0, 0);
// choose a color for the ellipse
$col_ellipse = imagecolorallocate($image1, 255, 255, 255);
// choose a color for the line
$col_line = imagecolorallocate($image1, 255, 0, 0);
//Divide the image into 4 sectors with 2 lines
imageline ($image1, 484, 0, 484, 968, $col_line);
imageline ($image1, 0, 484, 968, 484, $col_line);
// draw the white ellipse
// gooi de coords in een array, en loop deze door met list/each en doe onderstaande.
while (list ($key, $val) = each ($_POST[famno_hs])) {
$parts=explode(" ","$val");
$famno = $parts[0];
$xpos = ($parts[1] * 8);
$ypos = ($parts[2] * 8);
imagefilledellipse($image1, $xpos, $ypos, 6, 6, $col_ellipse);
}
// output the picture
header("Content-type: image/png");
imagepng($image1);
?>
Dit script wordt dan aangeroepen vanuit een ander script met:
echo "<img src='image1.php'>";
Daarnaast nog een andere vraag, als het lukt om de coordinaten weer te geven, is het dan ook mogelijk om het voor elkaar te krijgen dat als je met de muis boven een van de coordinaten komt, er een zo'n tekstblokje tevoorschijn komt waarin dan die coordinaat als tekst komt te staan? (Dus bijv. net zo als wanneer je je muis boven een link houdt).
Voor de 2e vraag --> PHP is SERVERside, dus dat gaat niet met PHP of je moet AJAX gebruiken, maar dat is nogal overdreven vind ik. En als JavaScript uit staat werkt het niet meer.
Dus je formulier-data moet van pagina1 naar pagina3 met pagina2 ertussen. Dus of je moet je data die pagina2 ontvangt van het formulier uit pagina1 in een sessie zetten en die sessie in pagina3 weer uitlezen, of je moet pagina2 via $_GET-waarden in de url van pagina3 (de verwijzing in het src-atrribuut van de img-tag) de gegevens aan pagina3 laten geven.
Wil je het via Javascript doen (Er zijn een heleboel toolkits voor, meestal gebruik makend van SVG of Canvas implementaties van de browsers, dus zonder plugins als Flash) dan kan je het gewoon in pagina2 van het formulier ontvangen zonder problemen.
Ik ga maar weer eens stoeien. :)
Bedankt voor de tip.
Ook het laten zien van het gele tekstblokje dat je hebt als je bijv. je muis op een link houdt heb ik voor elkaar gekregen. Dit doormiddel van image mapping.
Bijv.
<AREA SHAPE='circle' COORDS='$xpos,$ypos,6' ALT='($parts[0],$parts[1])'>
De href weggelaten, had ik niet nodig, en kan er ook niet per ongeluk op geklikt worden. Maar de alt laten staan voor het tekstblokje.
Ik dacht ik laat het nog even weten, mss heeft iemand anders er dan ook wat aan.