Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 29
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    202

    inserire gruppo di valori checkbox su mysql in che modo? Suggerimenti? Alternative?

    Ciao,
    ho bisogno di un aiuto ragazzi.
    Ho un form, dove un utente deve registrarsi (nome, cognome, ecc) e c'è una parte dove deve spuntare tramite "checkbox" diversi servizi a sua scelta.
    Mi chiedo, come faccio a salvare quei servizi sul mysql, nel senso, li devo raggruppare e salvarli su un unica cella? Oppure devo fare in modo che l'utente venga replicato per ogni riga in modo che per ogni riga corrisponde a un diverso servizio? Oppure altri suggerimenti + semplici?

    Faccio un esempio:

    La tabella è questa:
    ID
    NOME
    COGNOME
    SERVIZI

    ipotizziamo che i checkbox sono 5:
    - servizio 1
    - servizio 2
    - servizio 3
    - servizio 4
    - servizio 5

    se li raggruppo in un un'unica cella che comando bisogna usare? Un array? E come verranno salvati sulla cella? (es. servizio 1, servizio 4) con la virgola? Oppure come ho detto prima, devo replicare l'utente? Come si fa in questo caso?

    Aiutatemi, vi prego, grazie infinite ragazzi! Ciao

  2. #2
    beh o fai una colonna per ogni checkbox se il numero di checkbox non è dinamico
    oppure le raggruppi tutte in una stringa e ci metti un carattere oppure un insieme di caratteri come divisori per esempio # oppure
    giusto qualkosa che non centri con i valori delle checkbox

    poi quando li vai a leggere fai un explode sapendo il carattere separatore

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    202
    ciao Punkrazio
    grazie x avermi risposto, purtroppo i valori della checkbox sono dinamici, e sono anche tanti circa una ventina per ora. Mi dici come faccio a raggrupparli? Che comando devo usare? Grazie infinite

  4. #4
    La checkbox, però, suppongo avrà un riferimento testuale e un value numerico.

    punkrazio ti ha siggerito di mettere tutto in un'unica stringa e ti ha dato una bella dritta.
    Ammettendo che la tua form sia come segue:
    codice:
    <form action=ìì>
    <fieldset>
     <legend>Linguaggi conosciuti</legend>
     
    
     <input type="checkbox" name="xxx" value="1"/> Servizio 1
     
     
     <input type="checkbox" name="yyy" value="2"/> Servizio 2 
     
    
     <input type="checkbox" name="zzz" value="3"/> Servizio 3 
    </fieldset>
    </form>
    Nella pagina PHP che riceverà i dati non fati altro che fare quanto segue:
    Codice PHP:
    $serv1 $_POST['xxx']; // questa variabile contiene 1
    $serv2 $_POST['yyy']; // questa variabile contiene 2
    $serv3 $_POST['zzz']; // questa variabile contiene 3

    $servizi $serv1."^".$serv2."^".$serv3
    La stringa servizi conterrà il riferimento numerico ad ogni servizio separato da un carattere a tua scelta (io ho usato ^, ma te puoi mettere quello che preferisci).
    Con un semplice explode(), in fase di estrapolazione dei dati dal DB, ti vai a recuperare i valori dei servizi attivati.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    202
    grande sei un mito!!!
    ascolta io però ho dei valori dinamici per le checkbox tipo questo:

    <input type="checkbox" name="checkbox" value="<?php echo $row_servizi['servizi']; ?>" />
    <?php echo $row_servizi['servizi']; ?>

    ovviamente ripetuto.

    In base al tuo esempio come lo modifico?

    $serv1 = $_POST['checkbox'];
    e poi?

    la funzione "explode" la conosco la so usare, è il raggruppamento con questi valori dinamici ke vengono selezionati dalle checkbox che non saprei come fare.

    Grazie infinite!

  6. #6
    Utente di HTML.it L'avatar di Ranma2
    Registrato dal
    Mar 2003
    Messaggi
    2,648
    http://it.php.net/foreach

    si usa foreach, chiama le checkbox tutte con lo stesso nome, poi tramite foreach lavori sui risultati che il form ti passa

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    202
    mmmm... questo purtroppo mi è un po complicato... nn lo capisco molto bene questo comando. Devo fare un array quindi?

    allora ho fatto una cosa semplice senza usare mysql. In base alla guida ho fatto cosi.
    Ho creato un file index.php con questo codice:

    Codice PHP:
    <form id="form1" name="form1" method="post" action="result.php">
      <
    input type="checkbox" name="checkbox" value="01" /> 
      
    01

      
    <input type="checkbox" name="checkbox" value="02" /> 
      
    02

      
    <input type="checkbox" name="checkbox" value="03" /> 
      
    03

      
    <input type="checkbox" name="checkbox" value="04" /> 
      
    04

      
    <input type="submit" name="Submit" value="Invia" />
    </
    form
    e una pagina result.php con questo codice:

    Codice PHP:
    <?php
    $arr 
    = array($_POST['checkbox']);

    reset ($arr);

    foreach (
    $arr as $value) {
        echo 
    "Valore: $value
    \n"
    ;
    }
    ?>

    Se spunto 3 valori mi da solo 1 risultato. Tipo spunto la 01 e la 03, faccio invia e mi viene fuori come valore "03".. Perchè?

  8. #8
    Utente di HTML.it L'avatar di Ranma2
    Registrato dal
    Mar 2003
    Messaggi
    2,648
    Originariamente inviato da webboy82
    mmmm... questo purtroppo mi è un po complicato... nn lo capisco molto bene questo comando. Devo fare un array quindi?

    allora ho fatto una cosa semplice senza usare mysql. In base alla guida ho fatto cosi.
    Ho creato un file index.php con questo codice:

    Codice PHP:
    <form id="form1" name="form1" method="post" action="result.php">
      <
    input type="checkbox" name="checkbox[]" value="01" /> 
      
    01

      
    <input type="checkbox" name="checkbox[]" value="02" /> 
      
    02

      
    <input type="checkbox" name="checkbox[]" value="03" /> 
      
    03

      
    <input type="checkbox" name="checkbox[]" value="04" /> 
      
    04

      
    <input type="submit" name="Submit" value="Invia" />
    </
    form
    e una pagina result.php con questo codice:

    Codice PHP:
    <?php
    $arr 
    $_POST['checkbox'];


    foreach (
    $arr as $value) {
        echo 
    "Valore: $value
    \n"
    ;
    }
    ?>

    Se spunto 3 valori mi da solo 1 risultato. Tipo spunto la 01 e la 03, faccio invia e mi viene fuori come valore "03".. Perchè?
    prova così

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    202
    cosi come? il codice che ho postato mi da solo 1 checbox come risultato, che inveve io ne ho selezionati + di 1

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    202
    ah scusa avevi tolto il reset. no cmq non va. mi da errore:

    Warning: Invalid argument supplied for foreach()

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.