Czy można uzyskać wiele danych wejściowych o tej samej nazwie do opublikowania, a następnie uzyskać do nich dostęp z PHP? Pomysł jest następujący: mam formularz, który umożliwia wprowadzenie nieokreślonej liczby adresów fizycznych wraz z innymi informacjami. Gdybym po prostu nadał każdemu z tych pól tę samą nazwę w kilku wpisach i przesłał te dane pocztą, czy PHP miałby do nich dostęp?
Powiedzmy na przykład, że mam pięć danych wejściowych na jednej stronie o nazwie „xyz” i chcę uzyskać do nich dostęp za pomocą PHP. Czy mógłbym zrobić coś takiego:
$_POST['xyz'][0]
Jeśli tak, to uczyniłoby to moje życie dziesięciokrotnie łatwiejszym, ponieważ mógłbym wysłać nieokreśloną ilość informacji przez formularz i uzyskać je przez serwer, po prostu przeglądając tablicę elementów o nazwie „xyz”.
address[0][street]
address[0][city]
address[0][zip]
,address[1][street]
address[1][city]
address[1][zip]
... Można odczytać z nich$_POST['address'][0]['city']
, na przykład[]
, takiego jak[0]
. To sprawia, że HTML trudniej jest wygenerować, ale dane nie są trudniejsze do odczytania po stronie PHPW swoim html możesz podać tablicę dla nazwy, np
W ten sposób php otrzyma tablicę adresów.
źródło
Odpowiedź Erica jest poprawna, ale problem polega na tym, że pola nie są pogrupowane. Wyobraź sobie, że masz wiele ulic i miast, które należą do siebie:
Wynik byłby
Aby pogrupować je według adresu, poleciłbym raczej skorzystać z tego, o czym Eric również wspomniał w sekcji komentarzy:
Wynik byłby
źródło
Dla każdego, kto to znajdzie - warto zauważyć, że możesz ustawić wartość klucza w nazwie wejścia. Dzięki odpowiedzi w POSTing Form Fields z tym samym atrybutem nazwy można również łączyć łańcuchy lub liczby całkowite bez cytowania.
Odpowiedzi zakładają, że nie przeszkadza ci powrót wartości klucza dla PHP, jednak możesz ustawić
name=[yourval]
(ciąg lub int), co pozwala ci odwołać się do istniejącego rekordu.źródło
To może być:
źródło