Wie kann man eine Javascript Variable an PHP weitergeben?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

php läuft auf dem Server, javascript beim Client, demzufolge muss der Client die Lösung wieder an den Server senden, sonst geht das nicht

Das stimmt, aber wie geht das?

0
@MinecrafterPG

indem du eine Anfrage an den Server schickst, z.B. per XMLRequest: und dann einfach deine Ergebnisse mit in den Header schreibst (z.B. google.com/?antwort=xyz) den kannst du dann dir in php wieder angucken.

Wenn du noch andere Variablen im PhpProgramm von vorher brauchst, kannst du die (vllt verschlüsselt) mit an den Client und zurück versenden,
oder eine Art Key zum Client schicken und den zurück senden lassen, und bevor du deinen php Teil beendet speicherst du die Sachen irgendwie so, dass du mit dem Key auf sie zugreifen kannst, ab (per MySQL z.B.)

0
@MinecrafterPG

für den XML-Krams ja, für MySQL oder in-Dateien-schreiben findest du schon was im Netz 

var req = new XMLHttpRequest();
req.open("GET", "http://deintestserver.de/"+deinArgumentString, true);

req.send();

wenn du POST statt GET nimmst ist es nicht ganz so offensichtlich für den Nutzer, dass du noch eine Anfrage gesendet hast

0
@Gastnr007

Also man könnte es doch eigendlich auch folgendermaßen machen:

function Variable() { 

var javascriptVariable = "Test";
window.location.href = "loc.php?ergebnis=" + javascriptVariable;
}

Aber wie rufe ich das in PHP wieder ab?

0
@MinecrafterPG

ja das wäre auch eine Möglichkeit, wobei dabei der Nutzer ja die Seite wechselt, was vielleicht nicht gewünscht ist.

in php sieht das Bekommen der Dinge dann so aus:

var javascriptVariable = isset($_GET["ergebnis"]) ? $_GET["ergebnis"]:"";

wenn du Arrays versenden möchtest, musst du diese natürlich erstmal zu einem String umwandeln und danach wieder zurück

0
@Gastnr007

nun bei 2 variablen geht das auch einfacher:

in js:

 window.location.href = "loc.php?lat=" + lat + "&long=" + long; 

in php:

$lat   = $_GET['lat'];

$long = $_GET['long'];

Hinweis wg. XML-Krams: XMLHttpRequest hat ganz und gar nichts mit XML zu tun, das war ein marketing-begriff von microsoft. zum googlen: das verfahren nennt sich AJAX (wobei das X auch für XML steht, wobei AJAX ebenso nichts mit XML zu tun hat).

man kann seine übergabe-parameter in einen XML sring reinprügeln (das war die idee), muss aber nicht.

üblich ist, wenn eine komplexe datenstruktur (wie hier nicht) vorliegt, dieses einfach als JSON-ausdruck (array oder object) zu übergeben und dann in php mit json_decode in eine php-array oder -object zu wandeln. 

0

schaue dir bei jQuery das Kapitel ajax an. Ist dort schöner implementiert.

Was möchtest Du wissen?