[PHP]Javascript variable > PHP variable

Pagina: 1
Acties:
  • 149 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Mavvie
  • Registratie: Maart 2001
  • Laatst online: 10-05-2021
Hoe doe ik dat zonder de variable in een link te zetten? Ik kon namelijk alleen deze mogelijkheid tegen, maar dat is niet de bedoeling. Weet iemand of er nog een andere manier is?

Twitter | Linkedin


Acties:
  • 0 Henk 'm!

  • T. van Beek
  • Registratie: Januari 2002
  • Laatst online: 13-10-2024

T. van Beek

flickritus

Zou je het misschien iets duidelijker uit kunnen leggen? :?
Ik begrijp er nu niks van! :)

http://flickr.com/photos/itommy/


Acties:
  • 0 Henk 'm!

  • Mavvie
  • Registratie: Maart 2001
  • Laatst online: 10-05-2021
T. van Beek schreef op 21 April 2003 @ 01:32:
Zou je het misschien iets duidelijker uit kunnen leggen? :?
Ik begrijp er nu niks van! :)
Nou als je een javascript variable hebt..

dus var width = screen.width();

moet dus omgezet worden naar $screenwidth

Twitter | Linkedin


Acties:
  • 0 Henk 'm!

Verwijderd

Let op dat Javascript clientside is en PHP serverside. Dit wil dus zeggen dat de variabele dmv POST of GET doorgegeven moet worden. Een oplossing is om een automatische redirect naar dezelfde pagina te doen met als GET-parameter de variabele. Deze is dan met PHP op te pakken..

Acties:
  • 0 Henk 'm!

  • Eskimootje
  • Registratie: Maart 2002
  • Laatst online: 08:29
Met hidden velden in een form mss?

Acties:
  • 0 Henk 'm!

Verwijderd

...

[ Voor 100% gewijzigd door Verwijderd op 23-04-2003 14:13 ]


Acties:
  • 0 Henk 'm!

  • Limhes
  • Registratie: Oktober 2001
  • Laatst online: 08:38
Verwijderd schreef op 21 April 2003 @ 04:50:
mischien een beetje overdreven maar zo zou het moeten lukken (met mijn minimale js kennis :P)

[...onzin...]

zoals ik al zei, beetje overdreven, maar het werkt wel :+
Als je niet weet of iets wel werkt, wil je dat dan ook niet posten? Hier heeft de TS namelijk ook niets aan.
Bovenstaande oplossing werkt dus niet omdat het hele stuk html+js in de PHP variabele blijft staan. Zoek het verschil tussen client- en server-side eens op (hint: google) en kom dan tot de conclusie dat jouw eerste oplossing (variabelen doorgeven in de url) niet eens een hele gekke oplossing is.

Acties:
  • 0 Henk 'm!

Verwijderd

een nette manier hiervoor is er domweg niet. Wat je evt. wel zou kunnen doen, is een invisible div plaatsen met daarin een iframe. In het iframe roep je dan blaat.php?var=schermresolutie aan. Alleen de eerste aanroep van de pagina waarin het iframe staat, heeft geen $screenwidth.

Acties:
  • 0 Henk 'm!

Verwijderd

Je moet iets van de client naar de server krijgen. Dat gaat dus via een HTTP request.
Je moet dus zorgen dat die client een request gaat doen, en in die request moeten dan die variabelen worden meegegeven. Dat kan op drie manieren:
  • via een GET request (variabelen in de URL)
  • via een POST request (variabelen vanuit een form field, wordt verborgen meegestuurd)
  • via een cookie (GET/POST, variabelen kun je direct met javascript setten, verborgen meegestuurd)
De eerste versie wil je niet, zo geef je zelf aan, dus blijven over: POST en cookies. Cookies worden niet altijd toegelaten, met een POST request maak je in principe een formulier dat zichzelf invult en meteen weer verstuurt. Met cookies kun je met javascript de variabele in een cookie zetten, en daarna de browser opnieuw een request laten doen zodat de variabelen op de server beschikbaar worden.

Either way: je moet (dmv. javascript) de client nog een request laten doen als je wilt dat het onmiddellijk in orde komt met een refresh, als je dat niet per se nodig vindt, dan kun je die variabele in een cookie of in een formulier zetten, en gewoon wachten tot de client nog een request gaat doen. Denk er hierbij wel aan dat je voor een POST request echt dat formulier moet versturen, want als iemand op een linkje klikt, wordt het formulier niet verstuurd als je niet even een javascriptje schrijft! Met cookies hoef je daar niet aan te denken, maar zul je wel even moeten checken of cookies worden toegelaten :)

Verder kun je het best de post van supercow negeren, zo werkt het niet. PHP en (client-side) javascript zullen nooit direct met elkaar kunnen babbelen op zo'n manier. De afhandeling van een PHP script gaat als volgt:
- De server krijgt een request (met eventueel GET/POST/cookie variabelen).
- De server genereert een pagina, en/of doet nog wat maffe dingen waar de client niets van merkt
- De client krijgt een pagina, en dan kan de browser eventueel de javascript statements gaan uitvoeren

Iets uitgebreider:
De client voert de javascript code uit, de server voert de PHP code uit. Het is voor de client onmogelijk om -nadat de request van de client naar de server verstuurd- nog gegevens naar de server te sturen die van invloed kunnen zijn op het script. De server begint pas met het uitvoeren van een PHP script als de hele request binnen is. Daarna gaat de deur als het ware dicht, en begint de PHP engine te ratelen. Deze produceert eventueel een HTML document, of iets anders, en kan deze terugsturen naar de client.

Het enige 'contact' dat PHP kan hebben met javascript, is als er javascript code door PHP gegenereerd wordt. Maar de code zal pas op de client worden uitgevoerd. Het is onmogelijk om iets wat die javascript produceert nog terug te krijgen op de server, zonder een nieuwe HTTP request te doen, en die request staat volledig los van de huidige.

Maar wat supercow vertelt is niet meer dan een sprookje ;)

[edit]
Hmm, heb ik nou echt zo'n lang verhaal getikt :?

[ Voor 3% gewijzigd door Verwijderd op 21-04-2003 13:50 . Reden: typo (met dank aan Rickets) ]


Acties:
  • 0 Henk 'm!

Verwijderd

of kijk eens naar al die gratis tellers die doen het meet plaatjes.

Acties:
  • 0 Henk 'm!

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 11-09 11:19

chem

Reist de wereld rond

Verwijderd schreef op 21 April 2003 @ 13:53:
of kijk eens naar al die gratis tellers die doen het meet plaatjes.
Ja, en dat zijn dus GET requests. En die mochten niet :?

Klaar voor een nieuwe uitdaging.


Acties:
  • 0 Henk 'm!

  • AcXeller
  • Registratie: Mei 2002
  • Niet online
Had idd ook zo'n leuk probleem. Wou twee javascript arrays naar php hebben. Uiteindelijk ook via de post methode gedaan. Javascript genereerd een form met daarin alle waarden als hidden en die verstuurd hij dan meteen. Enig nadeel is wel dat er enige vertraging inzit dankzij javascript.

Mijn YouTube kanaal


Acties:
  • 0 Henk 'm!

  • irondog
  • Registratie: Januari 2001
  • Laatst online: 11-05 10:49

irondog

alle dingen moeten onzin zijn

Zo simpel is het:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<html>
<head>

<script type="text/javascript">
var counter=1
</SCRIPT>

</head>

<body>

[img]plaatje.jpg[/img]

<input NAME="submit" TYPE="submit"
onclick="document.location='handler.php?aantalplaatjes='+counter+'&kut=bef'"
VALUE="Toekennen"></form></center>

</body>
</html>


Javascript variabelen moet je doorgeven met de get methode.

[P5B deluxe] [Core2Duo 6300] [2 X 1GB DDR2] [GF FX7300] [320 GB WD] [Gentoo] [VISTA]

Pagina: 1