bytes.cat

La wiki d'FP d'informàtica

Eines de l'usuari

Eines del lloc


php_checkboxes

Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Següent revisió
Revisió prèvia
php_checkboxes [2026/09/22 14:44]
enric_mieza_sanchez creat
php_checkboxes [2026/09/25 15:04] (actual)
enric_mieza_sanchez [Checkboxes amb array]
Línia 3: Línia 3:
 Aquest article ve dels fonaments en [[PHP]]. Aquest article ve dels fonaments en [[PHP]].
  
-Els checkboxes poden tenir un tractament particular en PHP que els fa molt útils.+Els checkboxes es poden resoldre com a variables independents cadascun, o bé a través d'un array, que ho fa mes convenient. 
 + 
 +{{tag> #FpInfor #Daw #DawMp07 #DawMp07Uf1 #DawMp07Uf1 #php }}
  
 \\ \\
Línia 9: Línia 11:
 ===== Checkboxes bàsic ===== ===== Checkboxes bàsic =====
  
-Considera aquest codi:+Volem implementar una llista de la compra com aquesta: 
 + 
 +{{checkboxes_compra.png?300}} 
 + 
 +Resoldríem la part HTML així:
  
 <file php checkboxes.html> <file php checkboxes.html>
Línia 26: Línia 32:
 </form> </form>
 </file> </file>
 +
 +Ens enviarà les dades com seria mes esperable (si seleccionem Ous i Cebes):
 +<code>
 +$_POST = array(2) {
 +  ["ous"]=>
 +  string(2) "on"
 +  ["cebes"]=>
 +  string(2) "on"
 +}</code>
  
 I el processament d'aquest formulari: I el processament d'aquest formulari:
Línia 46: Línia 61:
  
 Observa que: 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''.   * 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''.   * Enlloc de processar cada element fem un ''foreach'' per recórrer la llista d'elements de l'array ''productes''.
Línia 51: Línia 67:
   * Amb ''array_keys()'' obtenim un array amb les claus del diccionari ''$_POST'' on hi ha les dades enviades pel formulari.   * 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 ''prods[]'':
 +
 +
 +<file php checkboxes_array.html>
 +<h3>Llista de la compra amb array</h3>
 +<form action="checkboxes_array2.php" method="post">
 + <input type="checkbox" id="patates" name="prods[]" value="patates">
 + <label for="patates">Patates</label>
 + <br>
 + <input type="checkbox" id="ous" name="prods[]" value="ous">
 + <label for="ous">Ous</label>
 + <br>
 + <input type="checkbox" id="cebes" name="prods[]" value="cebes">
 + <label for="cebes">Cebes</label>
 + <br>
 + <input type="submit">
 +</form>
 +</file>
 +
 +Fixa't ara en què:
 +  * Tenim l'array ''prods[]'' enlloc de l'identificador de la variable.
 +  * Hi ha un nou camp ''value='...nomproducte...''' que serà el què s'enviarà per POST.
 +
 +Això ens enviaria les dades via POST d'aquesta altra manera, diferent de l'exemple anterior:
 +
 +<code>$_POST = array(1) {
 +  ["prods"]=>
 +  array(2) {
 +    [0]=>
 +    string(3) "ous"
 +    [1]=>
 +    string(5) "cebes"
 +  }
 +}
 +</code>
 +
 +<file php checkboxes_array2.php>
 +<?php
 +
 +echo "<p>A la cistella hi ha:</p>\n";
 +echo "<ul>\n";
 +foreach( $_POST["prods"] as $elem ) {
 + echo "<li>$elem</li>\n";
 +}
 +echo "</ul>";
 +
 +var_dump($_POST);
 +</file>
  
php_checkboxes.1790088297.txt.gz · Darrera modificació: 2026/09/22 14:44 per enric_mieza_sanchez