====== Checkboxes en PHP ====== Aquest article ve dels fonaments en [[PHP]]. Els checkboxes es poden resoldre com a variables independents cadascun, o bé a través d'un array, que ho fa mes convenient. \\ ===== Checkboxes bàsic ===== Volem implementar una llista de la compra com aquesta: {{checkboxes_compra.png?300}} Resoldríem la part HTML així:

Llista de la compra




Ens enviarà les dades com seria mes esperable (si seleccionem Ous i Cebes): $_POST = array(2) { ["ous"]=> string(2) "on" ["cebes"]=> string(2) "on" } I el processament d'aquest formulari: A la cistella hi ha:

\n"; echo ""; var_dump($_POST);
Observa que: * Al ''var_dump()'' del final es mostren les dades que ens arriben. Cada producte marcat a la checkbox arribarà com un element del diccionari amb el valor "on". * Cada element amb checkbox té una entrada al diccionari amb el seu ''name''. * Enlloc de processar cada element fem un ''foreach'' per recórrer la llista d'elements de l'array ''productes''. * Utilitzem la funció ''in_array()'' per saber si un element concret està dins de la llista de productes. * Amb ''array_keys()'' obtenim un array amb les claus del diccionari ''$_POST'' on hi ha les dades enviades pel formulari. \\ ===== Checkboxes amb array ===== Si volem enviar tots els elements de la compra en un sol array, es pot fer canviant el formulari inicial, i al ''name'' de cada checkbox posar-hi el nom de la variable array, per nosaltres ''prod[]'':

Llista de la compra amb array




Això ens enviaria les dades via POST d'aquesta altra manera, diferent de l'exemple anterior: $_POST = array(1) { ["prods"]=> array(2) { [0]=> string(3) "ous" [1]=> string(5) "cebes" } } Realitza el codi PHP que mostri els elements que hem seleccionat, similarment a com s'ha resolt en el primer exemple. És més senzill o més complicat el codi d'aquesta nova versió?