Heim > Backend-Entwicklung > PHP-Problem > So empfangen Sie von Ajax übermittelte Array-Parameter in PHP

So empfangen Sie von Ajax übermittelte Array-Parameter in PHP

PHPz
Freigeben: 2023-04-26 15:48:36
Original
1302 Leute haben es durchsucht

Beim Schreiben von Webanwendungen müssen Sie häufig Ajax zum Senden von Formularen verwenden oder komplexe Datentypen wie Arrays zur Verarbeitung verwenden. In PHP ist es einfach, Parameter grundlegender Datentypen zu empfangen, der Empfang von Parametern vom Array-Typ erfordert jedoch eine spezielle Verarbeitung. Der nächste Artikel führt Sie zu einer ausführlichen Diskussion darüber, wie PHP von Ajax übermittelte Array-Parameter empfängt.

1. Mehrere Möglichkeiten, Arrays mit Ajax zu übermitteln

  1. Serialisierung verwenden

Wenn der Client Tools wie jQuery verwendet, um Ajax-Anfragen zu stellen, kann das Array serialisiert und übermittelt werden. Zum Beispiel das folgende Beispiel:

var data = {
    name: 'John',
    age: 25,
    hobbies: ['swimming', 'reading', 'coding']
};
$.ajax({
    type: 'POST',
    url: 'test.php',
    data: {myData: JSON.stringify(data)},
    success: function(res) {
        console.log(res);
    }
});
Nach dem Login kopieren

Auf der Serverseite können Sie die Funktion json_decode() verwenden, um den empfangenen JSON-String wie folgt in einem Array wiederherzustellen:

$data = json_decode($_POST['myData'], true);
$name = $data['name'];
$age = $data['age'];
$hobbies = $data['hobbies'];
Nach dem Login kopieren

Diese Methode ist einfach und direkt, aber Sie müssen es tun Achten Sie auf Folgendes: Die Menge der übermittelten Daten Es darf nicht zu groß sein, da es sonst die Leistung beeinträchtigt.

  1. FormData verwenden

Durch die Verwendung von FormData-Objekten kann eine flexiblere Formulardatenübermittlung erreicht werden. Zum Beispiel das folgende Beispiel:

var data = {
    name: 'John',
    age: 25,
    hobbies: ['swimming', 'reading', 'coding']
};
var formData = new FormData();
formData.append('name', data.name);
formData.append('age', data.age);
$.each(data.hobbies, function(index, item) {
    formData.append('hobbies[]', item);
});
$.ajax({
    type: 'POST',
    url: 'test.php',
    data: formData,
    contentType: false,
    processData: false,
    success: function(res) {
        console.log(res);
    }
});
Nach dem Login kopieren

Auf der Serverseite können Sie $_POST und $_FILES verwenden, um die von FormData übermittelten Daten wie folgt zu empfangen:

$name = $_POST['name'];
$age = $_POST['age'];
$hobbies = $_POST['hobbies'];
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Es ist zu beachten, dass die Parameter contentType und processData festgelegt werden müssen auf „false“ setzen, andernfalls schlägt die Übermittlung fehl.

  1. Array direkt übergeben

Wenn Sie Tools wie jQuery für die Ajax-Übermittlung verwenden, können Sie das Array direkt an den Datenparameter übergeben. Zum Beispiel das folgende Beispiel:

var data = {
    name: 'John',
    age: 25,
    hobbies: ['swimming', 'reading', 'coding']
};
$.ajax({
    type: 'POST',
    url: 'test.php',
    data: data,
    success: function(res) {
        console.log(res);
    }
});
Nach dem Login kopieren

Auf der Serverseite können Sie $_POST verwenden, um Array-Typ-Parameter wie folgt zu empfangen:

$name = $_POST['name'];
$age = $_POST['age'];
$hobbies = $_POST['hobbies'];
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Diese Methode ist einfach und effizient, aber nicht flexibel genug.

2. Array-Parameter empfangen

Egal auf welche Weise Sie die Array-Parameter übermitteln, der Server benötigt eine spezielle Verarbeitung. PHP bietet mehrere Methoden zum Empfangen von Array-Parametern.

  1. Verwenden Sie $_POST

Wenn Sie Serialisierung verwenden oder ein Array direkt für die Ajax-Übermittlung übergeben, können Sie $_POST verwenden, um Array-Parameter wie folgt zu empfangen:

$name = $_POST['name'];
$age = $_POST['age'];
$hobbies = $_POST['hobbies'];
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Es ist zu beachten, dass PHP nur die ersten 1000 empfängt standardmäßig Array-Elemente; wenn ein mehrdimensionales Array übermittelt wird, muss es außerdem im JSON-Format verarbeitet werden.

  1. Verwenden Sie file_get_contents

Wenn die Menge der übermittelten Daten relativ groß ist, können Sie die Funktion file_get_contents verwenden, um Array-Parameter wie folgt zu empfangen:

$data = file_get_contents('php://input');
$jsonData = json_decode($data, true);
$name = $jsonData['name'];
$age = $jsonData['age'];
$hobbies = $jsonData['hobbies'];
Nach dem Login kopieren

Diese Methode kann eine große Datenmenge empfangen und ist flexibler.

  1. Verwenden Sie php://input

Verwenden Sie php://input, um auch Array-Parameter zu empfangen, wie folgt:

$data = file_get_contents('php://input');
parse_str($data, $arrayData);
$name = $arrayData['name'];
$age = $jsonData['age'];
$hobbies = $arrayData['hobbies'];
Nach dem Login kopieren

Es ist zu beachten: Die auf diese Weise empfangenen Daten sind alle String-Typen und müssen es auch sein Einige Typkonvertierungen wurden verarbeitet.

3. Zusammenfassung

Wenn Sie Ajax zum Übermitteln von Array-Parametern verwenden, müssen Sie auf Aspekte wie die Übertragungsmethode, die Empfangsmethode und die Datenmenge achten. Wenn die Datenmenge klein ist, können Sie sie mithilfe von Serialisierung oder FormData übermitteln. Wenn die Datenmenge groß ist, können Sie sie mit Funktionen wie file_get_contents und parse_str empfangen. Ich glaube, dass die Leser durch die Einleitung dieses Artikels bereits verstanden haben, wie PHP von Ajax übermittelte Array-Parameter empfängt. Es ist jedoch zu beachten, dass im Code einige Filter und Überprüfungen vorgenommen werden müssen, um die Sicherheit der Daten zu verbessern.

Das obige ist der detaillierte Inhalt vonSo empfangen Sie von Ajax übermittelte Array-Parameter in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage