Pagina 1 di 1

Input array doppio

Inviato: 18/08/2014, 10:52
da Elranius
Buongiorno a tutti,

ho un problema nel gestire invio tramite post due liste di checkbox relative ad un'unico utente.

Codice: Seleziona tutto

$utente=$user['username'].'[]';

<input type="checkbox" name="'.$utente.'" value="1">
<input type="checkbox" name="'.$utente.'" value="2">
...

<input type="checkbox" name="'.$utente.'" value="100">
<input type="checkbox" name="'.$utente.'" value="200">
...
Scritto in questo modo, il risultato del Post risulta cosi:

Codice: Seleziona tutto

Array ( 
[action] => invia
[utente1] => Array ( [0] => 1 [1] => 2 [2] => 100 [3] => 200) 
[utente2] => Array ( [0] => 1 [1] => 2 [2] => 100 [3] => 200)
)
Quello di cui avrei bisogno io invece è di ricevere nella posizione $_Post['utente1'] due array del tipo:

Codice: Seleziona tutto

Array ( 
[action] => invia
[utente1] => Array ( 
                             [0] => Array ( [0] => 1 [1] => 2) 
                             [1] => Array ( [0] => 100 [1] => 200)
                           )
[utente2] => Array ( 
                             [0] => Array ( [0] => 1 [1] => 2) 
                             [1] => Array ( [0] => 100 [1] => 200)
                           )
)
Oppure ancora meglio:

Codice: Seleziona tutto

Array ( 
[action] => invia
[utente1] => Array ( 
                             [livello1] => Array ( [0] => 1 [1] => 2) 
                             [livello2] => Array ( [0] => 100 [1] => 200)
                           )
[utente2] => Array ( 
                             [livello1] => Array ( [0] => 1 [1] => 2) 
                             [livello1] => Array ( [0] => 100 [1] => 200)
                           )
)
Ho provato a modificare il codice cosi:

Codice: Seleziona tutto

$utente=$user['username'].'[]';

<input type="checkbox" name="'.$utente.'[livello1]" value="1">
<input type="checkbox" name="'.$utente.'[livello1]" value="2">
...

<input type="checkbox" name="'.$utente.'[livello2]" value="100">
<input type="checkbox" name="'.$utente.'[livello2]" value="200">
...

Codice: Seleziona tutto

Array ( 
[action] => invia
[utente1] => Array ( [0] => Array ( [livello1] => 1 ) 
                             [1] => Array ( [livello1] => 2 ) 
                             [3] => Array ( [livello2] => 100 ) 
                             [4] => Array ( [livello2] => 200 )
                   )
[utente2] => Array ( [0] => Array ( [livello1] => 1 ) 
                             [1] => Array ( [livello1] => 2 ) 
                             [3] => Array ( [livello2] => 100 ) 
                             [4] => Array ( [livello2] => 200 )
                   )
)

Al momento l'unica soluzione decente è questa:

Codice: Seleziona tutto

$utente_liv1=$user['username'].'_liv1[]';
$utente_liv2=$user['username'].'_liv2[]';

<input type="checkbox" name="'.$utente_liv1.'" value="1">
<input type="checkbox" name="'.$utente_liv1.'" value="2">
...

<input type="checkbox" name="'.$utente_liv2.'" value="100">
<input type="checkbox" name="'.$utente_liv2.'" value="200">
...

Codice: Seleziona tutto

Array ( 
[action] => invia
[utente1_liv1] => Array ( [0] => 1 [1] => 2 ) 
[utente1_liv2] => Array ( [0] => 100 [1] => 200 ) 
[utente2_liv1] => Array ( [0] => 1 [1] => 2 ) 
[utente2_liv2] => Array ( [0] => 100 [1] => 200 ) 
)
devo quindi elaborare le chiavi dell'array per individuare l'utente desiderato ma poi almeno ho al suo interno due array distinti che posso gestire con dei cicli.

Se qualcuno ha qualche idea migliore oppure la soluzione per ottenere un output come descritto sopra sarebbe fantastico.

Grazie mille!