Javascript gegevens mailen

Status
Niet open voor verdere reacties.

HenkieBo

Nieuwe gebruiker
Lid geworden
10 apr 2011
Berichten
4
Hallo,

Ik wil enkele javascriptvariabelen mailen naar een emailadres.
Dit moet gebeuren als de pagina opgevraagd wordt, zonder
tussenkomst van de bezoeker. Is dit mogelijk?

Groet
 
Een mail sturen gaat via een server-side script; Javascript is client-side. Het is dus niet mogelijk vanuit Javascript een mail te sturen. Wat wel kan is met Javascript een server-side bestand aan te roepen (bv. PHP) en in dit bestand een mail te sturen. De Javascript-variabelen kan je dan gewoon meesturen.
 
Ik heb daar al erg veel op gegoogled, maar kreeg nergens een werkend
voorbeeld. Ik begrijp het dan ook niet. Hoe krijg ik die variabele naar een
PHP? En die PHP wordt toch eerder uitgevoerd dan de JS? Ik hoop dat je
mij een werkend voorbeeld kunt geven. Hartelijk dank.
 
Yup, je hebt gelijk. Maar er zijn oplossingen voor; een daarvan is XMLHttpRequest. Dit wordt ook wel 'AJAX' genoemd.

XMLHttpRequest is een manier om een bestand in Javascript te laden. Een voorbeeld heb ik hier staan. In jou geval kan je dan het .txt bestand verwisselen voor een .php geval wat dan mailt.

Het idee:

request.js
[JS]var x = 3; // JS-var
var y = 4; // ook JS-var

var xhttp = new XMLHttpRequest(); // werkt alleen in niet-IE browsers
var bestand = 'mail.php?variabele1=' + x + '&variabele2=' + y;

xhttp.open('get', bestand, true);
xhttp.send(null);[/JS]

mail.php
PHP:
<?php

   $variabele1 = $_GET['variabele1'];   // en nu een PHP var
   $variabele2 = $_GET['variabele2'];   // ...

   mail(); // you get the idea

?>


je zult als je zoiets doet dan in je php-script dan de waardes van de variabelen krijgen, welke je dan kan mailen.
 
Ja, ik heb zulk soort scripts al vaak geinstalleerd. Ik heb de jouwe nu
ook weer geinstalleerd, maar nergens zijn de variabelen op te vangen.
Als ik ze met echo zichtbaar wil maken, zijn ze "". Ook als ik in de js
als php de mail.php uitvoer, geeft hij geen variabelen weer. Dat klopt
ook wel met het gegeven dat die mail.php eerder wordt uitgevoerd,
maar hoe moet ik die variabelen te pakken krijgen? In een ander script
wil ik n.l. de gegevens naar een bestand op de server schrijven.

Zeer bedankt voor de moeite, ik hoop dat ik er uit kom.
 
Oh, ik denk dat je het niet begrijpt.



Laten we het zo doen. Wat je wilt zijn de gebruikers' hun scherm breedte/hoogte. Deze wil je in PHP naar een .txt bestand schrijven.

Dit zijn de bestanden in deze (minimale) case:
  • index.html - het bestand welke de gebruiker bezoekt. Hierin staat HTML, met wat Javascript.
  • schrijfweg.php - bestand dat al z'n GET dingen wegschrijft.

Wat we gaan doen is het volgende. Als de bezoeker naar index.html gaat dan worden daar door Javascript de scherm-breedte/hoogte opgehaald. Dan wordt er een XMLHttpRequest gemaakt naar schrijfweg.php. Deze schrijft de data weg.



index.html
HTML:
<html>

   <body>

      <script>

         var hoogte  = Screen.height;
         var breedte = Screen.width;

         var file = "schrijfweg.php?breedte=" + breedte + "&hoogte=" + hoogte;

         var xhttp = new XMLHttpRequest();

         xhttp.open('get', file, true);
         xhttp.send(null);

      </script>

   </body>

</html>


schrijfweg.php
PHP:
<?php

   // dit bestand wordt als volgt aangeroepen: schrijfweg.php?breedte=#&hoogte=#
   // waar #'s getallen voorstellen.

   $breedte = $_GET['breedte'];
   $hoogte  = $_GET['hoogte'];

   file_put_contents('grootte.txt', $breedte . "\n" . $hoogte);

?>
 
Jaaaa, hij doet het. Eerst stond er alleen in undefinedundefined maar
toen ik een keer extra </script> <script> toegevoegd had, ging het
goed. Nu hij werkt kan ik hem gaan uitbouwen. Veel bedankt voor
je geduld. Ik denk dat ik er ook een uitleg van op m'n website ga
zetten, op het web is het moeilijk als werkend voorbeeld te vinden.

Hartelijke groet,

HenkieBoy.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan