Zou je het misschien iets duidelijker uit kunnen leggen? 
Ik begrijp er nu niks van!
Ik begrijp er nu niks van!
http://flickr.com/photos/itommy/
Nou als je een javascript variable hebt..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!
dus var width = screen.width();
moet dus omgezet worden naar $screenwidth
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..
Als je niet weet of iets wel werkt, wil je dat dan ook niet posten? Hier heeft de TS namelijk ook niets aan.Verwijderd schreef op 21 April 2003 @ 04:50:
mischien een beetje overdreven maar zo zou het moeten lukken (met mijn minimale js kennis)
[...onzin...]
zoals ik al zei, beetje overdreven, maar het werkt wel
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.
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.
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:
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
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)
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) ]
Ja, en dat zijn dus GET requests. En die mochten nietVerwijderd schreef op 21 April 2003 @ 13:53:
of kijk eens naar al die gratis tellers die doen het meet plaatjes.
Klaar voor een nieuwe uitdaging.
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.
Zo simpel is het:
Javascript variabelen moet je doorgeven met de get methode.
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