Recuperare valore Radio Button php

Giorgio Borelli

Tra i campi di input utilizzabili all'interno di un form, probabilmente il tipo radio button è tra quelli che genera più confusione per i neofiti html, non presenta particolari problematiche eppure capita sovente che non se ne riesca a cogliere l'immediato utilizzo, ed i dubbi sui suoi possibili usi e soprattutto sul recupero del suo valore sorgono spesso nella mente di giovani sviluppatori. Questo è dovuto probabilmente perché i radio button presentano una forte somiglianza con i checkbox, ma la scelta univoca ed esclusiva di un solo valore dettata dalla loro natura capisco che può indurre un po' di confusione, vediamo di fare chiarezza, ma soprattutto vediamo come recuperare il valore di uno o più radiobutton al submit di un form tramite post ed il linguaggio php.

Supponiamo di avere un form che presenti al suo interno tre radio button indicanti valori diversi per tre ruoli diversi di un possibile utente di un cms:

 

<strong>Seleziona il ruolo idoneo per questo Utente:</strong>
<form method="post" action="script_post.php">
    <input type="radio" name="users[]" value="1" />Admin<br />
    <input type="radio" name="users[]" value="2" />Editor<br />
    <input type="radio" name="users[]" value="3" />Guest<br />
    <br />
    <input type="submit" name="submitted" value="INVIA" />
</form>

 

Come vedi abbiamo la possibilità di effettuare una scelta tra 3 possibili valori, e bada bene la scelta degli input di tipo radio è mutuamente esclusiva, essi si comportano in maniera diamentralmente opposta ia loro cugini checkbox che consentono invece scelte multiple, selezionando un radio button o cambiandone la scelta da una lista in automatico deselezioniamo gli altri. Questo è il comportamento predefinito per i radio button che appartengono tutti alla stessa famiglia, cosa vuol dire questo? Se noti bene tutti e 3 i radio button del form hanno lo stesso name, ossia "users", al submit del form, i dati inseriti in post e trasmessi alla pagina "script_post.php" sarà presente un array di nome proprio users contenente il valore del radio button selezionato, se fossero stati invece dei checkbox ad avere lo stesso name, si sarebbe costruito un array con tutti i valori selezionati dei checkbox, sapendo questo, recuperare il valore del radio button diventa un gioco da ragazzi, bastano poche righe di codice in php, ecco come fare:

 

$users=(isset($_POST['users'])) ? $_POST['users']:NULL;

 

Per prima cosa verifichiamo tramite la funzione isset che al post siano stati settati e sia presente il dato 'users', se questo è presente alla variabile php $users ne assegniamo il valore, che ricordiamo è un array di un solo elemento, nel caso contrario assegniamo NULL, ora procediamo nel fare un controllo e poi il recupero del valore, ecco il codice php:

 

if(!empty($users) and is_array($users))
    $ruolo = $users[0];

 

Come vedi basta fare riferimento al primo elemento dell'array, quello in posizione zero, per recuperarne il valore, e fai bene attenzione che il valore è di tipo stringa, quindi se devi trattare dei numeri (come in questo esempio) bada bene a convertirli in interi tramite opportuno cast.

Se fossero stati invece dei checkbox avremmo avuto un array con tanti elementi quanti erano i check selezionati, e necessariamente avremmo dovuto utilizzare un ciclo for o foreach per recuperarne ed assegnare tutti i valori.

Vedi come recuperare il valore di un radio button con php è davvero semplice, e se invece i radio button di appartenere ad una lista (mutamente esclusiva) fossero stati singoli ed indipendenti, quindi ognuno col suo name, come avremmo fatto a recuperarne il valore? Beh, anche qui nulla di difficile, in questo ultimo caso anziché un array, al post avremmo avuto un valore singolo passato alla pagina specificata in action del form, e la procedura di recupero del valore è identica alla prima riga di codice php mostrata sopra, solo che questa volta abbiamo in variabile direttamente il valore stringa e non l'array.

Per qualsiasi altro dubbio o domanda su come recuperare un valore dai radio button tramite php ti rimando allo spazio dei commenti.

Categorie: html | PHP

Tags: , ,

Aggiungi Commento

biuquote
Loading