2009-07-16 4 views
8

J'analyse le code PHP de quelqu'un d'autre et je l'ai remarqué que le code HTML d'entrée a de nombreux champs d'entrée cachés avec des noms qui se terminent par « [] », par exemple:Au moyen de crochets en entrée HTML champs de

<input type="hidden" name="ORDER_VALUE[]" value="34" /> 
<input type="hidden" name="ORDER_VALUE[]" value="17" /> 

la page PHP qui traite cette entrée acquiert chaque valeur comme ceci:

foreach ($_REQUEST["ORDER_VALUE"] as $order_value) { 
    /... 
} 

ce qui est le « [] » utilisé? Indiquant qu'il y aurait plusieurs champs de saisie avec le même nom?

Répondre

11

Oui. Fondamentalement PHP va savoir coller toutes ces valeurs avec le même nom dans un tableau.

Cela s'applique à tous les champs de saisie, en passant, pas seulement ceux qui sont cachés.

1

La plupart des bibliothèques de traitement de formulaires s'attendent à ce que l'auteur indique s'il souhaite traiter un élément de données sous la forme d'une chaîne ou d'un tableau de chaînes.

Les auteurs de PHP ont décidé d'être incohérents avec le reste du monde, et exigent que le HTML soit construit spécialement. La mise entre crochets à la fin du nom indique à PHP de le traiter comme un tableau de données.

14

Il transmet les données sous forme de tableau à PHP. Lorsque vous avez des formulaires HTML avec le même nom, il sera ajouté dans les listes de virgules comme les listes de cases à cocher. Ici, PHP a un traitement pour convertir en un tableau PHP basé sur le [] comme ceci:

Pour obtenir le résultat envoyé comme un tableau à votre script PHP que vous nommez la ou des éléments comme celui-ci:

<input name="MyArray[]" /> 
<input name="MyArray[]" /> 
<input name="MyArray[]" /> 
<input name="MyArray[]" /> 

Notez les crochets après le nom de la variable, c'est ce qui en fait un tableau. Vous pouvez regrouper les éléments dans différents tableaux en attribuant le même nom à différents éléments:

<input name="MyArray[]" /> 
<input name="MyArray[]" /> 
<input name="MyOtherArray[]" /> 
<input name="MyOtherArray[]" /> 

Ce produit deux tableaux, MonTableau et MonAutreTableau, qui est envoyé au script PHP. Il est également possible d'assigner des touches spécifiques à vos tableaux:

<input name="AnotherArray[]" /> 
<input name="AnotherArray[]" /> 
<input name="AnotherArray[email]" /> 
<input name="AnotherArray[phone]" /> 

http://us2.php.net/manual/en/faq.html.php

Questions connexes