So che posso fare cose come <input name="foo[]">
, ma è possibile fare cose come <input name="foo[bar]">
e farlo apparire in PHP come $_POST['foo']['bar']
?Posso inserire array associativi negli input dei form per essere elaborati in PHP?
Il motivo che mi chiedo è perché sto facendo un enorme tavolo di elementi del modulo (tra cui <select>
con selezioni multiple), e voglio che i miei dati organizzati in modo pulito per lo script che sto postando. Voglio che gli elementi di input in ogni colonna abbiano lo stesso nome base, ma un identificatore di riga diverso come una chiave di array. Ha senso?
EDIT: Ho provato esattamente questo già, ma a quanto pare Drupal interferisce con quello che sto cercando di fare. Pensavo di sbagliare la mia sintassi. Firebug mi dice che i miei nomi di input sono costruiti esattamente come questo, ma i miei dati tornano come [foo[bar]] => data
anziché [foo] => array([bar] => data)
.
EDIT 2: Sembra che il mio vero problema era la mia ipotesi che $form_state['values']
in Drupal avrebbe la stessa gerarchia array come $_POST
. Non avrei mai dovuto presumere che Drupal sarebbe stato così ragionevole e intuitivo. Mi scuso per aver sprecato il tuo tempo. Puoi andare in giro per la tua azienda.
Questo è ciò che il manuale dice http://www.php.net/manual/en/faq.html.php#faq.html.arrays – mario
possibile duplicato di [Posting array from form] (http: // stackoverflow. it/questions/6152436/posting-array-from-form) – mario
Dispari, ho provato a fare esattamente questo e non ha funzionato. Credo che sia solo perché sto usando Drupal:/Ho pensato che non stavo facendo la sintassi PHP giusta. Ora non sono sicuro di dover rivedere questa domanda o scrivere una nuova domanda specifica per Drupal. – DLH