2009-06-18 25 views
35
<input name="foo[]" ... > 

Używałem ich wcześniej, ale zastanawiam się, jak to się nazywa i czy istnieje specyfikacja?Macierze wejściowe HTML

Nie mogłem go znaleźć w HTML 4.01 Spec, a wyniki w różnych wynikach Google nazywają go tylko "tablicą" wraz z wieloma przykładami PHP przetwarzania danych formularza.

Odpowiedz

10

Istnieją pewne referencje i wskaźniki w komentarzach on this page at PHP.net:

Torsten mówi

„Sekcja C.8 wytycznych Zgodność XHTML SPEC mają zastosowanie do korzystania z atrybutu nazwy jako identyfikator fragmentu . Jeśli zaznaczysz DTD przekonasz się, że atrybut „name” jest jeszcze zdefiniowany jako CDATA dla elementów formularza „

Jetboy mówi

” według tego. http://www.w3.org/TR/xhtml1/#C_8 typ nazwy atrybut został zmieniony w XHTML 1.0, co oznacza, że ​​nawiasy kwadratowe w atrybucie nazwy XHTML są nieprawidłowe.

Niezależnie od tego, w momencie pisania tego walidator W3C nie to odebrać na dokumencie XHTML.”

22

O ile wiem, nie ma niczego w specyfikacjach HTML, ponieważ przeglądarki nie powinny robić nic innego w tych polach. Wysyłają je tak, jak zwykle, a PHP jest tym, który robi parsowanie w tablicy, tak jak inne języki.

44

Myślę, że to po prostu PHP, a nie HTML.

Analizuje wszystkie pola HTML za pomocą [] do tablicy.

Więc można mieć

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

i gdy przedłożone, PHP uczyni $ _ POST [ 'żywność'] tablicą, i można uzyskać dostęp do jego elementów tak:

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

lub do zobacz wybrane wszystkie wartości:

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

Tak czy inaczej, nie sądzę, że istnieje specyficzna nazwa dla niego

+3

myślę, że to rozumie, po prostu chce wiedzieć, czy jest tam specyfikacja: –

+0

Jak mówi Paolo, rozumiem! Jest również używany w innych językach –

+1

PHP jest jedynym językiem, w którym napotkałem, gdzie domyślna biblioteka przetwarzania formularzy wymaga specjalnego nazewnictwa konwencje dla sytuacji, w których masz więcej niż jedną skuteczną kontrolę z sa Moje imie. Inne języki zazwyczaj pozostawiają determinację w traktowaniu czegoś jako tablicy lub nie do autora programu. – Quentin

0

Wykonaj go ...

<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. 
} 
?> 
Powiązane problemy