Maison >développement back-end >tutoriel php >Comment puis-je accéder à plusieurs champs de formulaire portant le même nom dans le tableau $_POST de PHP ?

Comment puis-je accéder à plusieurs champs de formulaire portant le même nom dans le tableau $_POST de PHP ?

DDD
DDDoriginal
2024-11-26 22:39:18851parcourir

How Can I Access Multiple Form Fields with the Same Name in PHP's $_POST Array?

POSTing des champs de formulaire avec des attributs de nom en double

Lors de l'envoi de données de formulaire via une requête POST en PHP, il est possible de rencontrer une situation où plusieurs éléments d'entrée partagent le même nom attribut. Cela soulève la question :

Pouvez-vous accéder aux valeurs de tous les champs portant le même nom à partir du tableau $_POST ?

La réponse est non. Seul le dernier élément d'entrée portant le nom donné sera disponible dans $_POST.

Pour contourner cette limitation, vous devez utiliser name="foo[]" pour l'attribut de nom d'entrée. Cela entraînera un tableau dans $_POST qui contient toutes les valeurs des éléments d'entrée portant le même nom. Par exemple :

<form method="post">
    <input name="a[]" value="foo">
    <input name="a[]" value="bar">
    <input name="a[]" value="baz">
    <input type="submit">
</form>

Dans ce cas, $_POST['a'] sera un tableau contenant les valeurs "foo", "bar" et "baz".

C'est Il est important de noter que l'utilisation d'attributs de nom simple sans [] ne conduira pas au comportement souhaité. En effet, PHP écrasera les valeurs existantes dans $_POST lorsqu'il rencontrera des noms répétés.

Si vous avez toujours besoin d'accéder aux données brutes du formulaire, vous pouvez les extraire de file_get_contents('php://input'). Cependant, vous devrez analyser manuellement cette chaîne dans un tableau.

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!

Déclaration:
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