Toon posts:

Output PHP scriptje naar javascript new image .src ?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik weet, het is mogelijk om in javascript met een stukje code als dit ...

var Img = new Image();
Img.src = "contact.php?ev="+ev+"&ms="+ms+"&xe="+xe;

... een PHP scriptje te activeren (contact.php, hier met 3 parameters), zonder dat de HTML-pagina verlaten / refresht wordt. In die PHP pagina kan dan vanalles gebeuren : een teller, registratie van IP-adres, etc. In het bovenste stukje javascript code is het geen echt plaatje dat geladen wordt, maar de constructie "haalt" wel een "plaatje" binnen, dat hier dan de file contact.php is, welke vervolgens uitgevoerd wordt. Zo geeft javascript een request naar de server, terwijl de HTML-pagina geladen blijft.

Maar is er ook input mogelijk naar zo'n javascript constructie / variabele ? Ik bedoel, andere input dan een (virtueel) plaatje naar de .src property van een image zoals in bovenstaand stukje code, maar bv. een integer of boolean ?

Iets met meta type ? Of misschien een mini popup windowtje openen met een PHP pagina die een gewenste functie uitvoert en zichzelf tenslotte sluit ? Te raar / moeilijk lijkt me, waarschijnlijk het kan niet. Wie helpt me uit de droom ? Ik heb vrij veel ervaring met javascript / DHTML en PHP, maar mijn kwartjes zijn nog niet allemaal gevallen.

Afbeeldingslocatie: http://www.hennyoga.nl/picture_library/imgxe.jpg

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 30-11 12:28
AJAX, daarmee kan doet handig.

  • moozzuzz
  • Registratie: Januari 2005
  • Niet online
wat is je exacte vraag? PHP zit in het serverside forum. Voor javascript is er geen verschil tussen foo.jpg of contact.php als je dat wou weten.

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 30-11 12:28
Hij bedoeld: Nu kan ik een berichtje sturen aan de server: image.php?message=hoiServer. Nu wil hij ook iets aan JavaScript melden. Dat kan middels een AJAX techniek. Denk aan een XML bestandje wat PHP aan JavaScript retourneerd.

  • Rekcor
  • Registratie: Februari 2005
  • Laatst online: 08-10 13:03
Als je met ajax aan de slag wilt, is http://www.xajaxproject.org/ een goede library.

  • djantje
  • Registratie: Januari 2000
  • Laatst online: 29-11 12:05
Ik zal even een stukje voorbeeld code geven aan je:

Voor alle browsers behalve Internet Explorer < 7
code:
1
xmlhttp = new XMLHttpRequest();

anders:
code:
1
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");


code:
1
2
3
xmlhttp.open("GET","bestand.php",false);
xmlhttp.send();
data = xmlhttp.responseText;

GET = http get request
bestand.php is het bestand
false -> synchroon laden, asynchroon kan ook, maar daar moet je veel meer werk voor doen.

Wat je nu in 'data' terug krijgt is alles wat je uit 'bestand.php' laat komen, omdat dit vrij omslachtig kan werken, kun je inderdaad het beste met een AJAX library werken, die hebben vaak een goede interface. Je hoeft dan geen rekening met browser verschillen/versies etc. te houden.

Dojo toolkit vind ik wel een mooie, maar is misschien iets te uitgebreid ;)

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Even geheel offtopic: TissaTussa; ik snap het belang van dat plaatje onder je post eigenlijk niet. Het lijkt me dat je dat als een soort signature bedoelt maar er is een reden dat we in het daarvoor bedoelde veld in je profiel geen plaatjes toestaan. Dergelijke versieringen kan je dus voortaan wel achterwege laten ;)

Intentionally left blank


Verwijderd

Topicstarter
AJAX ken ik van de zijlijn, nog niet mee bezig, maar ik wist dat jullie erover zouden beginnen. Dus het kan niet met een oldschool JS / DHTML "constructie" zoals ik bedoelde ? Dacht ik dus ... mmm ...

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

De oldschool methodes omvatten gebruik van (hidden) iframes en/of dynamische script-elementen. Dat werkt ook prima, maar Ajax is veelzijdiger en eenvoudiger - zeker als je een al bestaande library of framework gebruikt :)

[ Voor 16% gewijzigd door crisp op 12-03-2007 22:44 ]

Intentionally left blank


Verwijderd

Topicstarter
crisp schreef op maandag 12 maart 2007 @ 22:43:
De oldschool methodes omvatten gebruik van (hidden) iframes en/of dynamische script-elementen. Dat werkt ook prima, maar Ajax is veelzijdiger en eenvoudiger - zeker als je een al bestaande library of framework gebruikt :)
Ik ken de iFrames oplossing (niet zo'n fan van) maar het lijkt me dan de enige "oldschool" oplossing. Welk ander "dynamische script-element" kun je noemen dan, behalve de image.src, die een "input" kan ontvangen van de server ? Of begrijpen we elkaar nu verkeerd ?

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Verwijderd schreef op maandag 12 maart 2007 @ 22:56:
[...]


Ik ken de iFrames oplossing (niet zo'n fan van) maar het lijkt me dan de enige "oldschool" oplossing. Welk ander "dynamische script-element" kun je noemen dan, behalve de image.src, die een "input" kan ontvangen van de server ? Of begrijpen we elkaar nu verkeerd ?
Bijvoorbeeld:
JavaScript:
1
2
3
var script = document.createElement('script');
script.src = 'foo.php';
document.getElementsByTagName('head')[0].appendChild(script);

Intentionally left blank


Verwijderd

Topicstarter
Kijk, dat is goeie info. En ik snap het ook nog, denk ik, maar herken het nauwelijks, een nivootje hoger ... :*) ... En ja, waarom zou je zoiets willen ? Nou, bv. om een database update (verricht door de image.src truc) te verifieren en te melden in een JS alert box, dus zonder dat de page refresht.

Morgen proberen. Tnx !

[ Voor 42% gewijzigd door Verwijderd op 12-03-2007 23:10 ]


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Verwijderd schreef op maandag 12 maart 2007 @ 23:06:
Kijk, dat is goeie info. En ik snap het ook nog, denk ik, maar herken het nauwelijks, een nivootje hoger ... :*) ... En ja, waarom zou je zoiets willen ? Nou, bv. om een database update (verricht door de image.src truc) te verifieren en te melden in een JS alert box, dus zonder dat de page refresht.

Morgen proberen. Tnx !
Een request die serverside een update tot gevolg heb wil je niet met een GET-request doen. Als ik jou was zou ik me gewoon eens wat verdiepen in Ajax...

Intentionally left blank


Verwijderd

Topicstarter
crisp schreef op maandag 12 maart 2007 @ 23:16:
[...]

Een request die serverside een update tot gevolg heb wil je niet met een GET-request doen. Als ik jou was zou ik me gewoon eens wat verdiepen in Ajax...
Ga ik zeker doen, lijkt me ook beter dan obscure ActiveX (nooit gedaan) objecten activeren - ook wel eens gezien, net als de iFrames ... MS toch ? Of werkt dit nu ook in Moz en Opera? Moet allemaal anders kunnen inderdaad.

Maar wat denk je van een teller welke door een GET geactiveerd wordt? Bekend. Je bedoelt, op die manier een teller bouwen is niet zo hacker gevoelig als op die manier een belangrijke (inlog enzo) db update doen ? 'k Heb ook wel eens gezocht naar POST-vars meegeven op zo'n manier. Onzin. Ik ga nu aan de slag met je nieuwe inzicht.

  • disjfa
  • Registratie: April 2001
  • Laatst online: 04-11 11:05

disjfa

be

Verwijderd schreef op dinsdag 13 maart 2007 @ 00:16:
[...]
Ga ik zeker doen, lijkt me ook beter dan obscure ActiveX (nooit gedaan) objecten activeren - ook wel eens gezien, net als de iFrames ... MS toch ? Of werkt dit nu ook in Moz en Opera? Moet allemaal anders kunnen inderdaad.
Ik wil echt niet weten hoe bang je bent om vreemde objecten aan te spreken. Als je echt zo bang bent om objecten aan te spreken zou ik eerder een keer inleven in wat je nu daadwerkelijk wilt doen zodat je weet wat je aan het doen bent dan zomaan vreemde replies maken.

disjfa - disj·fa (meneer)
disjfa.nl

Pagina: 1