Heim  >  Artikel  >  Backend-Entwicklung  >  So übergeben Sie ein PHP-Array an js

So übergeben Sie ein PHP-Array an js

王林
王林Original
2023-05-19 17:45:091250Durchsuche

Da sich der Trend zur Trennung von Front-End und Back-End weiter verstärkt, gibt es immer mehr Fälle, in denen das Front-End mit den Back-End-Daten interagieren muss. In diesem Fall muss das Front-End in der Lage sein, die Daten vom Back-End verarbeiten zu lassen, das die Daten normalerweise in Form eines Arrays zurückgibt. Daher ist die Übergabe von PHP-Arrays an JS zu einem sehr wichtigen Thema geworden.

In diesem Artikel werden mehrere gängige Methoden zum Übertragen von PHP-Arrays vorgestellt, damit Leser die vom Backend zurückgegebenen Daten bei der Interaktion mit Front-End- und Back-End-Daten bequemer abrufen und verarbeiten können. Die spezifische Methode lautet wie folgt:

Methode 1: JSON verwenden

Derzeit ist die Verwendung von JSON die gebräuchlichste Lösung für die Front-End- und Back-End-Dateninteraktion. JSON (JavaScript Object Notation) ist ein leichtes Datenaustauschformat, das leicht zu lesen und zu schreiben ist und von Maschinen leicht analysiert und generiert werden kann, wodurch es sich sehr gut für den Datenaustausch eignet. PHP verfügt über eine integrierte Funktion json_encode(), die ein PHP-Array in das JSON-Format konvertieren, es dann mithilfe der AJAX-Technologie an das Frontend übertragen und es dann mithilfe von JSON.parse() in ein Objekt konvertieren kann, das JavaScript direkt bearbeiten kann .

Verwenden Sie PHP-Code, um das Array in JSON zu konvertieren:

$myArray = array("name" => "Tom", "age" => "18", "gender" => "male");
$json = json_encode($myArray);

Verwenden Sie AJAX am Frontend, um JSON-Daten abzurufen:

var request = new XMLHttpRequest();
request.open('GET', 'my_array.php', true);

request.onload = function() {
  if (request.status >= 200 && request.status < 400) {
    var data = JSON.parse(request.responseText);
    console.log(data);
  } else {
    console.log("Error!");
  }
};

request.send();

Im obigen Code verwenden wir das XMLHttpRequest-Objekt, um Daten vom Server anzufordern, und verwenden das JSON .parse()-Methode zum Abrufen der Daten Konvertiert eine Zeichenfolge im JSON-Format in ein JavaScript-Objekt.

Methode 2: Verwenden Sie serialize() und unserialize()

Wenn wir die Datenstruktur bei der Datenübertragung nicht berücksichtigen müssen, sind die Funktionen serialize() und unserialize() eine gute Wahl. Die Funktion

serialize() serialisiert die Variable in einen String, und die Funktion unserialize() kann den String auf seinen ursprünglichen Datentyp zurücksetzen. In PHP können wir serialize() verwenden, um ein Array in einen String zu serialisieren, dann AJAX verwenden, um die Daten abzurufen und sie dann zu deserialisieren.

Verwenden Sie PHP-Code, um das Array zu serialisieren:

$myArray = array("name" => "Tom", "age" => "18", "gender" => "male");
$serializedData = serialize($myArray);

Verwenden Sie AJAX am Frontend, um die serialisierte Zeichenfolge zu erhalten:

var request = new XMLHttpRequest();
request.open('GET', 'my_array.php', true);

request.onload = function() {
  if (request.status >= 200 && request.status < 400) {
    var data = request.responseText;
    console.log(data);
  } else {
    console.log("Error!");
  }
};

request.send();

Als nächstes können wir die unserialize()-Methode verwenden, um es in ein PHP-Objekt zu deserialisieren:

$unserializedData = unserialize($serializedData);
print_r($unserializedData);

-Methode Drittens: Verwenden Sie HTML5-Daten-*-Attribute

Wenn wir nur einige einfache Daten übertragen müssen und keine AJAX-Anforderungen verwenden müssen, kann das PHP-Array über das HTML5-Daten--Attribut an das Frontend übergeben werden. Das data--Attribut ist ein benutzerdefiniertes Attribut, das zum Speichern benutzerdefinierter Daten von Seitenelementen verwendet werden kann, um die Datenbindung im Frontend zu implementieren. Wir können zunächst ein data-*-Attribut für ein HTML-Element definieren, dann die Daten in PHP in einen JSON-Format-String konvertieren und schließlich PHP verwenden, um sie auf der Seite auszugeben.

Verwenden Sie PHP-Code, um das Array in JSON zu konvertieren und an das data-*-Attribut auszugeben:

$myArray = array("name" => "Tom", "age" => "18", "gender" => "male");
$json = json_encode($myArray);

echo '
This is my div
';

Als nächstes können wir dieses Element über JavaScript abrufen und das data-json-Attribut in ein JavaScript-Objekt analysieren:

var myDiv = document.getElementById("myDiv");
var jsonData = JSON.parse(myDiv.dataset.json);
console.log(jsonData);

Methode 4 : Verwenden Sie AjaxTransport

Wenn wir mit Front-End- und Back-End-Daten interagieren, müssen wir manchmal einige Parameter anpassen, um die Back-End-Verarbeitung zu erleichtern. In diesem Fall können Sie AjaxTransport in jQuery verwenden. Mit AjaxTransport können wir vor dem Senden der AJAX-Anfrage einige benutzerdefinierte Vorgänge ausführen, z. B. das Hinzufügen eines benutzerdefinierten Parameters im Anforderungsheader, um die Backend-Verarbeitung von PHP-Arrays zu erleichtern.

Verwenden Sie PHP-Code, um das Array in JSON zu konvertieren:

$myArray = array("name" => "Tom", "age" => "18", "gender" => "male");
$json = json_encode($myArray);

Wenn der Benutzer eine AJAX-Anfrage sendet, können wir diese JSON-Daten zum Anforderungsheader hinzufügen:

$.ajaxTransport("+json", function(options, originalOptions, xhr) {
  xhr.setRequestHeader("X-JSON", json);
});

Im Backend-PHP können wir die benutzerdefinierten Daten hinzufügen Anforderungsheader basierend auf den Parametern definieren, um das PHP-Array zu erhalten:

$myArray = json_decode($this->request->header('X-JSON'));

Zusammenfassend lässt sich sagen, dass wir verschiedene Methoden verwenden können, um PHP-Arrays an JavaScript zu übertragen, und wir sollten je nach Situation die am besten geeignete Lösung auswählen. Alles in allem kann die Beherrschung dieser Methoden es Entwicklern ermöglichen, flexibler mit Front-End- und Back-End-Daten zu interagieren und die Entwicklungseffizienz zu verbessern.

Das obige ist der detaillierte Inhalt vonSo übergeben Sie ein PHP-Array an js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn