Wie kann man eine Javascript Variable an PHP übergeben?

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Man kann sie zwar nicht direkt an PHP "übergeben", aber man kann sie via Ajax "durchschleusen", d.h. du erstellst eine PHP Datei, die die Variable via GET (oder POST, je nachdem) in Empfang nimmt und dann sendest du deine Variable via Ajax als GET/POST Request an diese Datei, wo sie dann gespeichert wird.

In deinem Fall würde ich den Ajax Request wohl direkt in die JS-Funktion packen, die die Zufallszahl generiert.


EineFrage54 
Beitragsersteller
 16.09.2019, 18:52

Und wie mache ich das am Besten?

Ich hab verschiedenes ausprobiert, aber kein Beispiel klappt:(

0
EineFrage54 
Beitragsersteller
 16.09.2019, 18:56
@EineFrage54

Liegt das vielleicht daran, dass ich einen Apache- Server verwende?

0
mastema666  16.09.2019, 20:03
@EineFrage54

Ne, das hat mit dem Server nichts zu tun.

Ist im Grunde gar nicht so schwer, erst mal eine PHP Datei erstellen, z.B. mit dem Namen ajax.php - deren Inhalt könnte etwa so aussehen:

<?php
  $var = $_GET['blubb'];
  
  // in $var steht dann deine Variable, die kannst du z.B. in einer Session speichern
  session_start();
  $_SESSION['blubb'] = $var;

Alternativ kannst du die Variable statt in einer Session auch in einer DB speichern, in einer Textdatei, einer Cache-Variablen oder wie auch immer, einfach irgendwie so, dass du in einer anderen PHP Datei wieder darauf zugreifen kannst.

Dann musst du deine Variable aus JavaScript nur noch an diese Datei "übergeben", z.B. so:

var blubb = 1234; // Deine JS Variable

// An die Datei senden, hier mit Hilfe von jQuery
$.get('/ajax.php?blubb=' + blubb);

Sobald du also in deiner Funktion für die Zufallszahl die Zahl ermittelt hast, rufst du die $.get Methode von jQuery auf und übergibst damit die Variable an die zuvor erstellte PHP Datei.

jQuery: https://jquery.com/

.get(): https://api.jquery.com/jQuery.get/

jQuery kannst du alternativ auch über das Google CDN einbinden, dafür einfach folgende Zeile in deinen HTML Header einfügen:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

(jQuery muss eingebunden werden bevor du deine Zufallszahl-Funktion aufrufst)

1

Du kannst es per Ajax an den Server übermitteln.
https://de.wikipedia.org/wiki/Ajax_(Programmierung)

Du kannst stattdessen auch den Inhalt der Unterseiten nachladen ohne die Seite an sich zu aktualisieren. Dann gehen die JavaScript Werte auch nicht verloren.