web-dev-qa-db-fra.com

Tableaux de saisie HTML

<input name="foo[]" ... >

J'ai déjà utilisé ces outils auparavant, mais je me demande comment il s'appelle et s'il existe une spécification pour cela.

Je ne pouvais pas le trouver dans HTML 4.01 Spec et les résultats dans divers résultats de Google l'appelaient simplement un "tableau" avec de nombreux PHP exemples de traitement des données de formulaire.

40
Gerald Kaszuba

Il y a quelques références et pointeurs dans les commentaires sur cette page à PHP.net :

Torsten dit

"La section C.8 des directives de compatibilité des spécifications XHTML s'applique à l'utilisation de l'attribut name en tant qu'identificateur de fragment. Si vous cochez la DTD, vous constaterez que l'attribut" name "est toujours défini en tant que CDATA pour les éléments de formulaire."

Jetboy dit

"Selon ceci: http://www.w3.org/TR/xhtml1/#C_8 le type de l'attribut name a été modifié dans XHTML 1.0, ce qui signifie que les crochets dans l'attribut name de XHTML ne sont pas valides.

Quoi qu’il en soit, au moment de la rédaction de cet article, le validateur du W3C n’a pas noté cela dans un document XHTML. "

12
The name of my cat

C'est juste PHP, pas HTML.

Il analyse tous les champs HTML avec [] dans un tableau.

Donc tu peux avoir

<input type="checkbox" name="food[]" value="Apple" />
<input type="checkbox" name="food[]" value="pear" />
<input type="checkbox" name="food[]" value="banana" />

et une fois soumis, PHP transformera $ _POST ['food'] en un tableau, et vous pourrez accéder à ses éléments comme suit:

echo $_POST['food'][0]; // would output first checkbox selected

ou pour voir toutes les valeurs sélectionnées:

foreach( $_POST['food'] as $value ) {
    print $value;
}

Quoi qu'il en soit, ne pense pas qu'il existe un nom spécifique pour cela

53
sqram

Autant que je sache, il n'y a rien dans les spécifications HTML car les navigateurs ne sont pas censés faire autre chose pour ces champs. Ils les envoient simplement comme d'habitude et PHP est celui qui effectue l'analyse dans un tableau, comme le font les autres langages.

22
Paolo Bergantino

Suis le...

<form action="index.php" method="POST">
<input type="number" name="array[]" value="1">
<input type="number" name="array[]" value="2">
<input type="number" name="array[]" value="3"> <!--taking array input by input name array[]-->
<input type="number" name="array[]" value="4">
<input type="submit" name="submit">
</form>
<?php
$a=$_POST['array'];
echo "Input :" .$a[3];  // Displaying Selected array Value
foreach ($a as $v) {
    print_r($v); //print all array element.
}
?>
0
Rabby shah