Input array doppio

di il
1 risposte

Input array doppio

Buongiorno a tutti,

ho un problema nel gestire invio tramite post due liste di checkbox relative ad un'unico utente.
$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:
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:
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:
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:
$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">
...
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:
$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">
...
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!

1 Risposte

  • Re: Input array doppio

    Premetto che non ho provato il codice, ma direi che ti sei dimenticato un paio di parentesi quadre, prova così:
    
    $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">
    
Devi accedere o registrarti per scrivere nel forum
1 risposte