Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2000
    Messaggi
    194

    Salvataggio array da form - Sto usando il procedimento giusto?

    Ciao a tutti, è solo una conferma di quello che sto facendo. Ho un form con un numero indefinito di valori che devo salvare in un database.

    Il form è il seguente:
    Codice PHP:
    <form action="array2.php" method="post">
      <
    input type="checkbox" name="risp[]" value="1" /> valore 1

      
    <input type="checkbox" name="risp[]" value="2" /> valore 2

      
    <input type="checkbox" name="risp[]" value="3" /> valore 3

      
    <input type="checkbox" name="risp[]" value="4" /> valore 4

      
    <input type="checkbox" name="risp[]" value="5" /> valore 5

      
    <input type="checkbox" name="risp[]" value="6" /> valore 6

      
    <input type="submit" value="submit" />
    </
    form
    Indipendentemente se i valori contenuti nel campo "value" li recupero dal db oppure staticamente come in questo esempio, li invio ad una pagina che si chiama array2.php che ha il seguente contenuto:

    Codice PHP:
    // VERIFICO SE ALMENO 1 RISPOSTA E' STATA SELEZIONATA
    if (isset($_POST['risp']))
    {

    // CICLO CON FOREACH PER AVERE UN ELENCO DI TUTTI I VALORI
        
    foreach ($_POST['risp'] as $valore)
        {
       
    // INSERISCO CON IL CICLO I VALORI UNO PER UNO NEL DB

    $query "INSERT INTO tabella (valore) VALUES ('$valore')";
    $risultato mysql_query($query) or die("Errore query database: " mysql_error()); 
        }
    }    
    // DO UN MESSAGGIO SE NEMMENO 1 VALORE E' STATO SELEZIONATO
    else
    {
        echo 
    "Devi scegliere almeno un valore";

    Quello che vorrei sapere è se il procedimento è giusto per salvare i valori risultanti oppure se esistono procedimenti definiti "+ corretti".

    Grazie!

  2. #2
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    potrebbe essere corretto..., dipende da come ti servono i dati nel db....

    ricordati che, come hai scritto te, dal form arriva un array contenente SOLO le check selezionate

    se vuoi che arrivino anche le checkbox NON selezionate devi numerarle

    <form action="array2.php" method="post">
    <input type="checkbox" name="risp[1]" value="1" /> valore 1

    <input type="checkbox" name="risp[2]" value="2" /> valore 2

    <input type="checkbox" name="risp[3]" value="3" /> valore 3

    <input type="checkbox" name="risp[4]" value="4" /> valore 4

    <input type="checkbox" name="risp[5]" value="5" /> valore 5

    <input type="checkbox" name="risp[6]" value="6" /> valore 6

    <input type="submit" value="submit" />
    </form>
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2000
    Messaggi
    194
    Grazie per la risposta!
    Dovrei numerarle dici per avere tutti i valori (naturalmente se mi servono), ma in questo caso per la pagina che raccoglie i dati "array2.php" dovrei cambiare qualcosa o funziona allo stesso modo?

  4. #4
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    puoi comportarti così....


    Codice PHP:
    <?php
    // VERIFICO SE ALMENO 1 RISPOSTA E' STATA SELEZIONATA
    if (isset($_POST['risp']))
      {
      
    $sel=0;
      foreach (
    $_POST['risp'] as $value)
        {
        if (
    $value != ""$sel 1
        }

      if (
    $sel == 1)
        {
        
    // CICLO CON FOREACH PER AVERE UN ELENCO DI TUTTI I VALORI
        
    foreach ($_POST['risp'] as $valore)
          {
          
    // INSERISCO CON IL CICLO I VALORI UNO PER UNO NEL DB
          
    $query "INSERT INTO tabella (valore) VALUES ('$valore')";
          
    $risultato mysql_query($query) or die("Errore query database: " mysql_error());
          }
        }
        
    // DO UN MESSAGGIO SE NEMMENO 1 VALORE E' STATO SELEZIONATO
      
    else
        {
        echo 
    "Devi scegliere almeno un valore";
        }
      }
    ?>
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  5. #5
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Originariamente inviato da dottwatson
    se vuoi che arrivino anche le checkbox NON selezionate devi numerarle
    eeeeeeehhhhhhh?!!!!!!!

    VVoVe: VVoVe: VVoVe:


    Le checkbox non selezionate NON arrivano, punto.

  6. #6
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    arrivano con valore vuoto.
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  7. #7
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Originariamente inviato da dottwatson
    arrivano con valore vuoto.
    Per la fantascienza c'è il forum OT

  8. #8
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    vero...

    mi sono confuso col fatto che la numerazione serve solo a mantenere le corrispondenze sennò php assegna un un suo indice incrementale nelle chiavi dell' array..


    fantascienza...
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2000
    Messaggi
    194
    infatti avevo qualche dubbio in merito....

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.