Wie kann man Variablen von PHP an JavaScript übergeben
Wenn Sie eine dynamisch generierte PHP-Variable an JavaScript übergeben müssen, ist dieses Snippet genau für Sie.
Wie übergibt man Variablen mit json_encode()
Das ist der einfachste Weg, eine Variable von PHP an JavaScript zu übergeben. Sie definieren einfach die PHP-Variable, dann echo es in eine einfache JavaScript-Variablendeklarationsanweisung.
Nehmen wir an, dass wir die folgende Variable in PHP haben:
<?php
$name = 'John' ;
?>
Und wir möchten es an eine JavaScript-Variable mit dem Namen name übergeben. So geht's los:
<script>
'var name = <?php echo json_encode($name); ?>;
</script>'
Wie verwendet man AJAX, um Variablen von PHP an JavaScript zu übergeben?
Diese Methode übergibt die Variable von JavaScript an PHP, ohne die Seite neu zu laden. Diese Methode gilt als die beste, da der Server- und clientseitige Skripte völlig getrennt sind.
Um AJAX zu verwenden, benötigen Sie zwei Seiten, die Erste ist, wo PHP die Ausgabe erzeugt, und die Zweite ist, wo JavaScript die Ausgabe bekommt:
- get-data.php
/* Do some operation here, like talk to the database, the file-session
* The world beyond, limbo, the city of shimmers, and Canada.
*
* AJAX generally uses strings, but you can output JSON, HTML and XML as well.
* It all depends on the Content-type header that you send with your AJAX
* request. */
echo json_encode(42); //In the end, you need to echo the result.
//All data should be json_encode()d.
//You can json_encode() any value in PHP, arrays,
strings, //even objects.
- index.php (oder wie auch immer die aktuelle Seite benannt ist)
<!-- snip →
<script>
function reqListener () {
console.log(this.responseText);
}
var oReq = new XMLHttpRequest(); //New request object
oReq.onload = function() {
//This is where you handle what to do with the response.
//The actual data is found on this.responseText
alert(this.responseText); //Will alert: 42
};
oReq.open("get", "get-data.php", true);
// ^ Don't block the rest of the execution.
// Don't wait until the request finishes to // continue.
oReq.send();
</script>
<!-- snip -->
Das Ergebnis für die angegebene Kombination der beiden Dateien ist 42, wenn das Laden der Datei abgeschlossen ist.
Echoen die Daten und verwenden Sie JavaScript, um die Informationen aus dem DOM zu erhalten.
Diese Methode ist nicht besser als AJAX, hat aber ihre Vorteile. Es ist immer noch relativ getrennt zwischen PHP und JavaScript in einer Weise, dass es kein PHP-Recht im JavaScript gibt.
Dadurch wird ein Element erzeugt, das dem Benutzer nicht angezeigt wird, aber für JavaScript erkennbar ist.
- index.php
<!-- snip -->
<div id="dom-target" style="display: none;">
<?php
$output = "42"; //Again, do some operation, get the output.
echo htmlspecialchars($output); /* You have to escape because the result
will not be valid HTML otherwise. */
?>
</div>
<script>
var div = document.getElementById("dom-target");
var myData = div.textContent;
</script>
<!-- snip -->
Hinweise: Es ist schwierig, strukturierte Daten zu erhalten und es ist schwierig, PHP und Ihre Datenlogik sauber zu trennen.