Maison > développement back-end > Problème PHP > Comment recevoir les paramètres de tableau soumis par Ajax en PHP

Comment recevoir les paramètres de tableau soumis par Ajax en PHP

PHPz
Libérer: 2023-04-26 15:48:36
original
1324 Les gens l'ont consulté

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

  1. Utiliser la sérialisation

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);
    }
});
Copier après la connexion

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'];
Copier après la connexion

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.

  1. Utiliser FormData

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);
    }
});
Copier après la connexion

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'];
Copier après la connexion
Copier après la connexion
Copier après la connexion

Il est à noter que les paramètres contentType et processData doivent être définis sur false, sinon la soumission échouera.

  1. Passez le tableau directement

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);
    }
});
Copier après la connexion

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'];
Copier après la connexion
Copier après la connexion
Copier après la connexion

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.

  1. Utilisez $_POST

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'];
Copier après la connexion
Copier après la connexion
Copier après la connexion

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.

  1. Utilisez file_get_contents

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'];
Copier après la connexion

Cette méthode peut recevoir une grande quantité de données et est plus flexible.

  1. Utilisez php://input

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'];
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal