Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    82

    problemi in form con checkbox multiple

    Nella creazione di un form ho una variabile a cui devo assegnare più di un valore, assegnato tra diverse scelte.
    Ho usato il seguente codice:

    Colore Blu <input type="checkbox" name="colore" value="blu">

    Colore Verde <input type="checkbox" name="colore" value="verde">

    Colore Rosso <input type="checkbox" name="colore" value="rosso">

    preso da un sito che mi diceva che alla variabile "colore" viene assegnato un valore oppure più valori, come in un array. Ma quando richiamo tale variabile da un file PHP che mi dovrebbe mettere tali valori all'interno di una riga di una tabella, mi mette solo l'ultimo valore selezionato!!!!
    Come devo fare quindi a mettere form con checkbox multiple?

    P.s.:è la prima volta che scrivo in un forum...spero di essere stato chiaro!
    Grazie a tuttiiiiiiiiii!!!!

  2. #2
    In teoria la variabile che valorizzi da PHP dovrebbe essere riempita con un array di valori in base ai checkbox selezionati, del tipo, se vengono selezionati tutti, verde, blu, rosso.
    Prova a richiedere il campo e fare una stampa della variabile per vedere cosa restituisce.
    FEDERIX.IT - [Pillola] GRAFICA DEI FORM

    ...ho ancora quella forza che ti serve, quando dici "Si comincia!"

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    82
    Ho provato a fare la stampa della variabile ma mi restituisce solo l'ultimo valore selezionato....ad esempio nel caso dei colori restituisce "rosso".
    Però sono ruiscito a risolvere...facendo un po di testa mia...ho assegnato diversi nomi alle variabili:

    Colore Blu <input type="checkbox" name="blu" value="blu">

    Colore Verde <input type="checkbox" name="verde" value="verde">

    Colore Rosso <input type="checkbox" name="rosso" value="rosso">

    tali valori li passo al file php che li mette in un unica variabile e che poi memorizzo nel mio database...cosi con questo facile stratagemma ho risolto il mio problema....spero possa servire a qualcun altro!

    Ora xò ne ho un altro...
    Infatti dopo tale operazione in cui memorizzo tali dati nel mio database ho creato un altro form in cui do la possibilità agli utenti di poter modificare i dati introdotti nella fase di inserimento...quindi avrei la necessità di far apparire già spuntate le checkbox scelte in fase di inserimento. Ad esempio se si è scelto blu e rosso, quando si accede alla sezione modifica dovrebbero già uscire spuntate le caselle relative a blu e rosso.

    Grazie di nuovo a tuttiiiii!!!!!!!!!!!!!!!

  4. #4
    Allora, preciso perché ho capito dove è l'errore. I checkbox essendo input di scelta multipla indipendente, devono avere diversi nomi tra di loro, al contrario dei radio che, essendo input di scelta multipla dipendenti tra di loro, devono possedere lo stesso nome.

    Per quanto riguarda la spunta in fase di modifica, non saprei come si fa con PHP, ma il ragionamento è il seguente:

    Se nel campo del db trovo il valore rosso, il check dev'essere selezionato
    Codice PHP:
    <input type="checkbox" name="rosso" <?php if nome_campo colore then echo "checked='checked' ?>
    Ti sposto dentro PHP
    FEDERIX.IT - [Pillola] GRAFICA DEI FORM

    ...ho ancora quella forza che ti serve, quando dici "Si comincia!"

  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Aggiungi le parentesi quadre per gestirlo come un array

    Colore Blu <input type="checkbox" name="colore[]" value="blu">

    Colore Verde <input type="checkbox" name="colore[]" value="verde">

    Colore Rosso <input type="checkbox" name="colore[]" value="rosso">

    e dopo che selezioni e invii i dati lo cicli e recuperi i valori
    if (isset($_POST['colore']))
    {
    foreach($_POST['colore'] as $color)
    echo $color;
    }

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    82
    Federix ilproblema è che io ho un solo campo nel mio db in cui inserirco tutti i miei valori....quindi il confronto con gli if che mi hai suggerito nn vano bene....nn ho piu campi ma uno solo!!!

    Va benissimo il suggerimento di mettere i valori in un array e poi inserirli nel campo del mio db....ma poi come faccio a recuperarli x far rimanere spuntate le caselle spuntate in fase di inserimento???

  7. #7
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    prova così.

    if (isset($_POST['colore']))
    $var = implode('-',$_POST['colore']);

    così inserisci tutti i colori nel campo del db separati da un trattino.

    //Esempio
    $var = "blu-rosso"; // il contenuto del tuo campo nel db dopo la selezione


    Una volta che recuperi la variabile dal db con strpos vedi cosa contiene. Se il colore è presente nella stringa la spunti altrimenti no.

    codice:
    Colore Blu <input type="checkbox" name="colore[]" value="blu" <?php echo strpos($var,"blu") === false ? '' : 'checked'  ?>  >
     
    Colore Verde <input type="checkbox" name="colore[]" value="verde" <?php echo strpos($var,"verde") === false ? '' : 'checked'  ?> >
    
    Colore Rosso <input type="checkbox" name="colore[]" value="rosso" <?php echo strpos($var,"rosso") === false ? '' : 'checked'  ?>  >
    nell'esempio le input relative al blu e al rosso saranno checkate.

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    82
    Grazieeeeeeeeeeeeee ragazziiiiiii....mi siete stati utilissimi!!!!!!!!!!!!
    Cisono riuscito.....quando ho visto il risultato stentavo a crederci anche io!!

    Grazie tante di nuovo!

  9. #9
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923

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 © 2024 vBulletin Solutions, Inc. All rights reserved.