Ihr Code ist in zwei völlig getrennte Teile aufgeteilt, die Serverseite y el Kundenseite .
|
---------->
HTTP request
|
+--------------+ | +--------------+
| | | | |
| browser | | | web server |
| (JavaScript) | | | (PHP etc.) |
| | | | |
+--------------+ | +--------------+
|
client side | server side
|
<----------
HTML, CSS, JavaScript
|
Die Kommunikation zwischen den beiden Seiten erfolgt über HTTP-Anfragen und -Antworten. PHP wird auf dem Server ausgeführt und gibt etwas HTML- und eventuell JavaScript-Code aus, der als Antwort an den Client gesendet wird, wo das HTML interpretiert und das JavaScript ausgeführt wird. Sobald PHP die Ausgabe der Antwort beendet hat, wird das Skript beendet und auf dem Server passiert nichts mehr, bis eine neue HTTP-Anfrage eingeht.
Der Beispielcode wird wie folgt ausgeführt:
<script type="text/javascript">
var foo = 'bar';
<?php
file_put_contents('foo.txt', ' + foo + ');
?>
var baz = <?php echo 42; ?>;
alert(baz);
</script>
Schritt 1, PHP führt den gesamten Code zwischen <?php ?>
Tags. Das Ergebnis ist folgendes:
<script type="text/javascript">
var foo = 'bar';
var baz = 42;
alert(baz);
</script>
Les file_put_contents
Aufruf hat zu nichts geführt, er hat lediglich " + foo + " in eine Datei geschrieben. Die <?php echo 42; ?>
Aufruf ergab die Ausgabe "42", die sich nun an der Stelle befindet, an der dieser Code vorher stand.
Der daraus resultierende HTML/JavaScript-Code wird nun an den Client gesendet, wo er ausgewertet wird. Die alert
Aufruf funktioniert, während der foo
wird nirgends verwendet.
Der gesamte PHP-Code wird auf dem Server ausgeführt, bevor der Client überhaupt mit der Ausführung von JavaScript beginnt. Es gibt keinen PHP-Code mehr in der Antwort, mit dem JavaScript interagieren könnte.
Um einen PHP-Code aufzurufen, muss der Client eine neue HTTP-Anfrage an den Server senden. Dies kann mit einer von drei möglichen Methoden geschehen:
- Ein Link, der den Browser veranlasst, eine neue Seite zu laden.
- Ein Formular, das Daten an den Server sendet und eine neue Seite lädt.
- Eine AJAX Anfrage, die eine Javascript-Technik ist, um eine normale HTTP-Anfrage an den Server zu stellen (wie 1. und 2.), aber ohne die aktuelle Seite zu verlassen.
Hier ist eine Frage, in der diese Methode näher erläutert wird
Sie können auch JavaScript verwenden, damit der Browser eine neue Seite öffnet, indem Sie window.location
oder ein Formular einreichen, das die Möglichkeiten 1. und 2. nachahmt.