Newsgroup: it.comp.www.php
Titolo: Aggiungere + voci con checkbox


Vatti a vedere questo thread (io uso i newsgroup di Libero), proprio ieri se
ne é parlato su questo gruppo di discussione:
http://usenet.libero.it/cgi-bin/ViewArticle.epl?MESSAGE_ID=%3C80Z117Z207Z107Y1056368331X18576%40usenet%2Elibero%2Eit%3E&GRUPPO=it%2Ecomp%2Ewww%2Ephp&CATEG_PARAM=Computer%20e%20Internet&SOTTOCATEG_PARAM=World%20Wide%20Web
HTH, ciao
Silvio Porcellana
Senior Programmer
-----------------------------------------------------------------------------------
Trovanome.it - 
http://www.trovanome.it
Se non vuoi essere solo un numero...hai bisogno di un nome!
-----------------------------------------------------------------------------------
--------------------------------
Inviato via 
http://usenet.libero.it

Ho letto ma non capisco (chiedo scusa, ma è da poco che mastico il PHP).
Vi posto la mia pagina add.php con il form, da dove vorrei che l'utente ,
scegliendo ad es. tutte e tre le attività, queste ultime vengano tutte
stampate a video nella colonna 'attivita' (cosa che non succede... mi scrive
solo la prima selezionata).
Dove dovrei inserire quel codice? Grazie in anticipo e mi scuso ancora per
la mancanza.
<form name="links" method="post" action="agg_istruttori.php">
  <table width="50%" border="0" cellspacing="0" cellpadding="0">
    <tr>
      <td>Nome</td>
      <td><input type="text" name="Nome"></td>
    </tr>
    <tr>
      <td>Data di nascita</td>
      <td><input name="datanasc" type="text" value="gg/mm/aaaa"></td>
    </tr>
    <tr>
      <td>Citt&agrave;:</td>
      <td><input type="text" name="Citta"></td>
    </tr>
        <tr>
      <td>Via:</td>
      <td><input name="via" type="text"></td>
    </tr>
    <tr>
      <td>Email:</td>
      <td><input name="email" type="text"></td>
    </tr>
    <tr>
      <td>Telefono:</td>
      <td><input name="telefono" type="text"></td>
    </tr>
    <tr>
      <td>Attivita:</td>
      <td>
        <p>
          <input type="checkbox" name="attivita" value="Programmazione">
          Programmazione<br>
          <input type="checkbox" name="attivita" value="Grafica">
          Grafica<br>
          <input type="checkbox" name="attivita" value="Web Designer">
          Web Designer<br>
                  </p>
        </td>
    </tr>
     </table>
  <tr>
     <p>
      <input type="submit" name="Submit" value="Submit">
    </p>
</form>


Allora Beppe, la cosa é un po' complessa perché (almeno col metodo che uso
io...) richiede anche conoscenze di Regular Expressions. Io provo a darti
uno spunto.
Il concetto é che (come vedi dallo snippet di codice che ti ho modificato)
indichi i checkbox con nomi *simili* ma diversi. Dopo di che scorri
nell'array delle variabili del form (che nel tuo caso é $_POST) per vedere
quali variabili hanno un 'nome' che identifica il checkbox: a quel punto
vedi l'identificatore che li differenzia (nel nostro caso 'attivita' é la
parte comune, '1', '2', '3' la parte univoca) per verificare (e quindi
eventualmente stampare a video) quelli che sono attivi.
Concretamente, dunque, il codice potrebbe essere:
<?php
  foreach ($_POST as $key => $value) {
    if ((preg_match("/attivita(.)/", $key, $matches)) && ($value != "")) {
      $checkbox[$matches[1]] = $value;
    }
  }
?>
A questo punto hai un array ($checkbox) che contiene tutti i valori dei
checkbox checkati.
Spero di essere stato un po' piú chiaro. Ciaups!
