Daten von PHP an JavaScript übergeben: Komplettguide mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Daten von PHP an JavaScript übergeben: Häufige Fragen und Antworten

\n\n

Hast du jemals ein PHP-Skript geschrieben, ein Array mit Daten aus der Datenbank erstellt und dann entsetzt festgestellt, dass der JavaScript-Code auf derselben Seite nichts davon weiß? Eine vertraute Situation. PHP läuft auf dem Server, JavaScript im Browser des Benutzers. Das sind zwei verschiedene Welten, getrennt durch Zeit und Raum. Aber wie bringt man sie dazu, miteinander zu kommunizieren? Wie übergibt man Variablen und Daten von PHP an JavaScript?

\n\n

Dieses Thema ist eine der häufigsten Fragen auf Stack Overflow (zehntausende Aufrufe!). Und das zu Recht: Die Interaktion zwischen serverseitigem und clientseitigem Code ist eine grundlegende Fähigkeit für jeden Webentwickler. In diesem Artikel zeigen wir dir 5 bewährte Methoden zur Übergabe von Daten von PHP an JavaScript – von einfach bis fortgeschritten. Los geht's!

\n\n

Warum können PHP und JavaScript nicht einfach miteinander reden?

\n\n

Bevor wir in den Code eintauchen, lass uns die Architektur verstehen. Wenn ein Benutzer eine Seite anfordert, passiert Folgendes:

\n\n
    \n
  1. Der Server führt das PHP-Skript aus.
  2. \n
  3. PHP generiert HTML (und kann darin JavaScript einfügen).
  4. \n
  5. Der Server sendet den fertigen HTML-Code an den Browser.
  6. \n
  7. Der Browser rendert die Seite und führt JavaScript aus.
  8. \n
\n\n

Der entscheidende Punkt: PHP wird ausgeführt, bevor JavaScript die Seite zu sehen bekommt. Daher ist die Übergabe von Variablen von PHP an JavaScript nur während der HTML-Generierung möglich. JavaScript kann nach dem Laden der Seite keine Daten von PHP "anfordern" (dafür gibt es AJAX, aber das ist eine andere Geschichte).

\n\n

Methode 1: PHP direkt in JavaScript einbetten (am einfachsten)

\n\n

Der offensichtlichste Weg ist, eine PHP-Variable direkt in den serverseitig generierten JavaScript-Code auszugeben. Beispiel:

\n\n
<?php\n$userName = "Alex";\n$userAge = 28;\n?>\n\n<script>\n    var name = "<?php echo $userName; ?>";\n    var age = <?php echo $userAge; ?>;\n    console.log("Hallo, " + name + "! Du bist " + age + " Jahre alt.");\n</script>\n
\n\n

Funktioniert es? Ja. Sieht es gut aus? Nicht wirklich. Die Nachteile sind offensichtlich:

\n
    \n
  • Der Code wird unübersichtlich und schwer lesbar.
  • \n
  • Wenn die Variable Anführungszeichen oder HTML-Tags enthält, erhältst du einen Syntaxfehler in JavaScript.
  • \n
  • Sicherheit? Vergiss es: XSS-Angriffe werden dir danken.
  • \n
\n\n

Diese Methode eignet sich nur für einfache Zeichenketten ohne Sonderzeichen (z. B. eine Datensatz-ID oder Seitenzahl). Für alles andere verwende die folgenden Methoden.

\n\n

Methode 2: JSON – der König der Datenübergabe

\n\n

JSON (JavaScript Object Notation) ist das Standardformat für den Datenaustausch zwischen Server und Client. PHP kann jedes Array oder Objekt mit einer einzigen Funktion json_encode() in JSON umwandeln. JavaScript wiederum kann JSON problemlos parsen.

\n\n

Beispiel: Ein Array von Benutzern von PHP an JavaScript übergeben.

\n\n
<?php\n$users = [\n    ['name' => 'Max', 'age' => 25],\n    ['name' => 'Anna', 'age' => 30],\n    ['name' => 'Peter', 'age' => 35]\n];\n$jsonUsers = json_encode($users, JSON_UNESCAPED_UNICODE);\n?>\n\n<script>\n    var users = <?php echo $jsonUsers; ?>;\n    console.log(users[0].name); // "Max"\n    console.log(users.length); // 3\n</script>\n
\n\n

Warum ist das großartig?

\n
    \n
  • Sicher: json_encode() maskiert automatisch Sonderzeichen.
  • \n
  • Vielseitig: Übergib Zeichenketten, Zahlen, Arrays, Objekte, boolesche Werte.
  • \n
  • Sauber: Der Code ist leicht zu lesen und zu warten.
  • \n
\n\n

Der einzige Nachteil: Die Daten werden direkt in den HTML-Code der Seite eingebettet. Bei vielen Daten wird die Seite schwerer. Für die meisten Aufgaben ist dies jedoch die optimale Lösung.

\n\n

Methode 3: data-Attribute in HTML (für die Übergabe über das DOM)

\n\n

Manchmal müssen Daten übergeben werden, die mit einem bestimmten Element auf der Seite verknüpft sind. Zum Beispiel

Blogs

Buchempfehlungen