Lors de l'écriture d'applications Web, vous devez souvent utiliser Ajax pour soumettre des formulaires ou utiliser des types de données complexes tels que des tableaux pour le traitement. En PHP, il est facile de recevoir des paramètres de types de données de base, mais la réception de paramètres de type tableau nécessite un traitement spécial. Le prochain article vous amènera à une discussion approfondie sur la façon dont PHP reçoit les paramètres de tableau soumis par Ajax.
1. Plusieurs façons de soumettre des tableaux avec Ajax
Lorsque le client utilise des outils tels que jQuery pour effectuer des requêtes Ajax, le tableau peut être sérialisé et soumis. Par exemple, l'exemple suivant :
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); } });
Côté serveur, vous pouvez utiliser la fonction json_decode() pour restaurer la chaîne JSON reçue dans un tableau, comme suit :
$data = json_decode($_POST['myData'], true); $name = $data['name']; $age = $data['age']; $hobbies = $data['hobbies'];
Cette méthode est simple et directe, mais vous devez faites attention à : la quantité de données soumises ne peut pas être trop importante, sinon cela affectera les performances.
L'utilisation d'objets FormData peut permettre une soumission plus flexible des données de formulaire. Par exemple, l'exemple suivant :
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); } });
Côté serveur, vous pouvez utiliser $_POST et $_FILES pour recevoir les données soumises par FormData, comme suit :
$name = $_POST['name']; $age = $_POST['age']; $hobbies = $_POST['hobbies'];
Il est à noter que les paramètres contentType et processData doivent être définis sur false, sinon la soumission échouera.
Si vous utilisez des outils tels que jQuery pour la soumission Ajax, vous pouvez directement transmettre le tableau au paramètre data. Par exemple, l'exemple suivant :
var data = { name: 'John', age: 25, hobbies: ['swimming', 'reading', 'coding'] }; $.ajax({ type: 'POST', url: 'test.php', data: data, success: function(res) { console.log(res); } });
Côté serveur, vous pouvez utiliser $_POST pour recevoir les paramètres de type tableau, comme suit :
$name = $_POST['name']; $age = $_POST['age']; $hobbies = $_POST['hobbies'];
Cette méthode est simple et efficace, mais pas assez flexible.
2. Recevoir les paramètres du tableau
Quelle que soit la manière dont vous soumettez les paramètres du tableau, le serveur nécessite un traitement spécial. PHP fournit plusieurs méthodes pour recevoir les paramètres du tableau.
Si vous utilisez la sérialisation ou transmettez directement un tableau pour la soumission Ajax, vous pouvez utiliser $_POST pour recevoir les paramètres du tableau, comme suit :
$name = $_POST['name']; $age = $_POST['age']; $hobbies = $_POST['hobbies'];
Il est à noter que PHP ne recevra que les 1000 premiers par défaut Éléments du tableau ; de plus, si un tableau multidimensionnel est soumis, il doit être traité au format JSON.
Si la quantité de données soumises est relativement importante, vous pouvez utiliser la fonction file_get_contents pour recevoir les paramètres du tableau, comme suit :
$data = file_get_contents('php://input'); $jsonData = json_decode($data, true); $name = $jsonData['name']; $age = $jsonData['age']; $hobbies = $jsonData['hobbies'];
Cette méthode peut recevoir une grande quantité de données et est plus flexible.
Utilisez php://input pour recevoir également les paramètres du tableau, comme suit :
$data = file_get_contents('php://input'); parse_str($data, $arrayData); $name = $arrayData['name']; $age = $jsonData['age']; $hobbies = $arrayData['hobbies'];
Il convient de noter que : les données reçues de cette manière sont toutes de type chaîne et doivent être traité Certaines conversions de type.
3. Résumé
Lorsque vous utilisez Ajax pour soumettre des paramètres de tableau, vous devez faire attention à des problèmes tels que la méthode de transmission, la méthode de réception et la quantité de données. Si la quantité de données est petite, vous pouvez utiliser la sérialisation ou FormData pour les soumettre ; si la quantité de données est importante, vous pouvez utiliser des fonctions telles que file_get_contents et parse_str pour les recevoir. Grâce à l'introduction de cet article, je pense que les lecteurs ont déjà compris comment PHP reçoit les paramètres de tableau soumis par Ajax. Mais il convient de noter que certains filtrages et vérifications doivent être effectués dans le code pour améliorer la sécurité des données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!