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
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); } });
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'];
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.
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); } });
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'];
Es ist zu beachten, dass die Parameter contentType und processData festgelegt werden müssen auf „false“ setzen, andernfalls schlägt die Übermittlung fehl.
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); } });
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'];
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.
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'];
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.
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'];
Diese Methode kann eine große Datenmenge empfangen und ist flexibler.
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'];
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!