php en getallen in de URL

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • DrClaw
  • Registratie: November 2002
  • Laatst online: 21-08 21:39
beste tweakers,

ik heb gezocht en niks gevonden voor een probleem met een image map. ziehier een stukje code uit het aanroep-bestandje:

<A HREF="mijnsterretjes.php">
<IMG width=400 height=400 ALIGN=top SRC = "images/mijnsterretjes.jpg" ISMAP>
</A>

als ik dan op het plaatje klik, kom ik bij voorbeeld terecht op:
http://localhost/mijnsterretjes.php?214,389

ik had graag die coordinaten op de een of andere manier uitgelezen, zodat ik ook daadwerkelijk er wat mee kan doen. wie kan me helpen ?

Acties:
  • 0 Henk 'm!

  • TheBorg
  • Registratie: November 2002
  • Laatst online: 20-09 18:24

TheBorg

Resistance is futile.

Misschien zijn er mooiere methode, maar met een form kan het in ieder geval.
HTML:
1
2
3
<form>
<input name="whatever" type="image" value="whatever" src="whatever.jpg" style="border:none;height:Xpx;width:Xpx;">
</form>

[ Voor 40% gewijzigd door TheBorg op 19-09-2005 18:17 ]


Acties:
  • 0 Henk 'm!

  • DrClaw
  • Registratie: November 2002
  • Laatst online: 21-08 21:39
bedankt, dit is een zeer elegante oplossing.

Acties:
  • 0 Henk 'm!

  • Sv3n
  • Registratie: Mei 2002
  • Laatst online: 22:14
Je moet de variable in de url wel een naam geven, bijv. :
blaat.php?cor=194,234
en dan lees je ze zo uit:
PHP:
1
$getallen = $_GET['cor'];


:)

Last.fm
Films!


Acties:
  • 0 Henk 'm!

  • TheBorg
  • Registratie: November 2002
  • Laatst online: 20-09 18:24

TheBorg

Resistance is futile.

Als je de form POST dan heten de formvariable dacht ik 'whatever_x' en 'whatever_y'.

Acties:
  • 0 Henk 'm!

  • Borizz
  • Registratie: Maart 2005
  • Laatst online: 24-08 20:35
Je kunt ook de query string(het gedeelte achter '?') uitlezen met php, daar heb je in dit geval ook voldoende aan je hoeft dan geen form te gebruiken.

PHP:
1
$getallen = $_SERVER["QUERY_STRING"];

[ Voor 21% gewijzigd door Borizz op 19-09-2005 18:38 ]

If I can't fix it, it ain't broken.


Acties:
  • 0 Henk 'm!

  • Maxonic
  • Registratie: September 2000
  • Laatst online: 05-09 22:23
TheBorg schreef op maandag 19 september 2005 @ 18:29:
Als je de form POST dan heten de formvariable dacht ik 'whatever_x' en 'whatever_y'.
$_POST['naam_x'] en $_POST['naam_y'] ja :) En naam dan vervangen door de waarde van het name attribuut in het input element.

[ Voor 118% gewijzigd door Maxonic op 19-09-2005 18:43 . Reden: +quote ]


Acties:
  • 0 Henk 'm!

  • TheBorg
  • Registratie: November 2002
  • Laatst online: 20-09 18:24

TheBorg

Resistance is futile.

Ik zit gewoon zwaar niet op te letten. Je oude code en de methode die Borizz aangeeft is veruit het makkelijkste.

Acties:
  • 0 Henk 'm!

Verwijderd

Als je de afbeelding nou gewoon een naam geeft, kun je die waarden ook weer makkelijker opvragen in PHP.
En je kunt het ook via een form doen, maar als je een eenvoudige GET request wilt doen, is dat al niet nodig.
Maar je gaat mij niet vertellen dat je er zelf niet uit komt, als je even zoekt op het internet. Hier is al heel lang geleden heel veel over geschreven.

Acties:
  • 0 Henk 'm!

  • DrClaw
  • Registratie: November 2002
  • Laatst online: 21-08 21:39
tja, tot de tip van TheBorg maakte ik gebruik van een imagemap. en de browser stuurt bij het klikken van een imagemap een URL door in de vorm: url?xcoord,ycoord .. zonder enige naam. dus valt er helaas niks te GETten of te POSTen, want de variabelen hebben geen naam.

hier datgene waar ik naartoe wil. het is nog maar een testje, een html-uitdraai van een dynamisch script.

hxxp://web.plexus.leidenuniv.nl/joatest/test.html

ik ben bijna waar ik wezen wil, ik kan namelijk overal op klikken en krijg dan een coordinaat, behalve op de javascript figuurtjes die ik over het plaatje heenteken. iemand enige tips ?

Acties:
  • 0 Henk 'm!

  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 22:34
Een flauwe tip is om linkjes met t's te typen ipv x-en.

Anyway, wat ik uit je bron kan opmaken is dat je sowieso afhankelijk gaat worden van javascript. Volgens mij kun je dan ook beter de boel met javascript oplossen. Voor het vinden van muis-coördinaten staan hier wel wat aanwijzingen. Maar wellicht is het wat overkill voor de bedoelingen (die mij een raadsel zijn ;) )

Een andere oplossing is om van de plaatjes die nu op je imagemap liggen ook linkjes te maken. Deze zouden kunnen wijzen naar het X,Y coördinaat waarop dit kleinere plaatje is gedefinieerd. Eventueel zou je met javascript zelfs het coördinaat ten opzichte van het achtergrondplaatje kunnen doorgeven doormiddel van een onclick eventhandler met wat mouse-positioning logica (zie de vorige paragraaf).

Last but not least zou je kunnen overwegen om het achtergrondplaatje met GD te genereren zodat je geen last hebt van HTML-elementen die over elkaar liggen. Voor wat uit de testlink blijkt is de afbeelding met de daarop afgebeelde kleinere afbeeldingen toch statisch. Je bent dan klaar met de alreeds werkende coördinatenlogica.

Welke oplossing de beste is hangt wat mij betreft af van de preciese bedoelingen met het script...

Regeren is vooruitschuiven


Acties:
  • 0 Henk 'm!

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 18-09 14:42
Borizz schreef op maandag 19 september 2005 @ 18:37:
Je kunt ook de query string(het gedeelte achter '?') uitlezen met php, daar heb je in dit geval ook voldoende aan je hoeft dan geen form te gebruiken.

PHP:
1
$getallen = $_SERVER["QUERY_STRING"];
Ik zou liever de $_SERVER['ARGV'] nemen

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

frickY schreef op dinsdag 20 september 2005 @ 09:29:
[...]


Ik zou liever de $_SERVER['ARGV'] nemen
want die heb je niet altijd bedoel je?
QUERY_STRING moet je hebben, dat is alles vanaf ? tot het einde in de url :)

Acties:
  • 0 Henk 'm!

  • Tjoekbezoer
  • Registratie: Maart 2003
  • Laatst online: 18-11-2024
en hier heb je de hele code, mocht dat nog nuttig zijn:

PHP:
1
2
3
4
5
<?
$coord = explode( ",", $_SERVER['QUERY_STRING'] );
$x = $coord[0]; // dat is, als het eerste getal de x is natuurlijk
$y = $coord[1];
?>
Pagina: 1