• Moderatore

    Campo di Scelta Multipla e Singola e Relazioni

    Mi sto avvicinando in questi giorni al PHP e sto cercando di studiare facendo pratica e sviluppando un applicativo che mi serve da tempo.
    In pratica l'applicativo, molto semplice, non fa altro che installarsi e poi iniziare a lavorare mostrando all'utente i dati contenuti nel database, con la possibilità di filtrare dati, cercarli ed inserirne di nuovi.
    Fino qui tutto ok, inserire nuovi dati e visualizzarli è abbastanza semplice e una volta che si è entrati in "ottica PHP" si procede abbastanza spediti..

    Mi sono però bloccato su un paio di problemi: avrei bisogno di avere due campi che in modalità di inserimento appaiano come scelta multipla e singola e che poi vengano visualizzati come gli altri campi.
    Faccio un esempio stupido, nel primo caso, quello della scelta multipla in modalità inserimento deve esserci una cosa del genere

       disponibili                       selezionati
     _____________                      ______________
    |rosso        |      _______       |             |
    |verde        |     |aggiungi|     |             |
    |giallo       |     |   ->   |     |             |
    |             |      ______        |             |
    |             |     |rimuovi|      |             |
    |             |     |   <-  |      |             |
    |             |                    |             |
    |_____________|                    |_____________|
    

    Cliccando sui pulsanti si selezionano i colori che si desiderano e si trascinano nel box di destra. Quando il modulo viene inviato quelli a destra vengono inseriti nel campo colore, gli altri no.
    Alla fine, se avremo selezionato Rosso e Blu ad esempio nel campo colore dovrà essere visualizzata una cosa simile:

    Rosso, Blu

    Se è troppo complesso con i box può essere anche fatto con i checkbox(i quadratini con la spunta), in access lo facevo così ad esempio..

    L'altra funzione invece dovrebbe essere semplicemente un menu a tendina da cui selezionare una singola opzione, ad esempio l'anno di nascita.

    Potete postarmi qualche riga di codice d'esempio? Devo creare due tabelle con le opzioni elencate giusto?
    Grazie a tutti


  • User Attivo

    Ciao pdellov,
    non mi è ben chiaro se ti servono delle dritte lato server e mysql oppure se
    hai bisogno di un'aiuto nella preparazione dell'interfaccia grafica.

    Ciao


  • Moderatore

    In realtà tutte e due, poiché non ho mai fatto un campo ad inserimento multiplo..


  • User Attivo

    Ciao pdellov,
    dunque per la scelta multipla è corretto utilizzare un set di checkbox.

    Come funzionano?
    [php]
    <form method="post" action="recuperaCheckbox.php">
    <input type="checkbox" name="myCheck[a]" value="Valore A" /> Valore A
    <br />
    <input type="checkbox" name="myCheck**" value="Valore B" /> Valore B
    <br />
    <input type="checkbox" name="myCheck" value="Valore C" /> Valore C
    <br />
    <input type="submit" value="invia form" />
    </form>
    [/php]

    Siccome offrono la possibilità di una scelta multipla è corretto considerarle come fossero un array di valori che viaggeranno in POST dopo il submit del FORM HTML.

    Quindi nella pagina php che recupererà i valori scelti dobbiamo prepararci ad utilizzare un Array.

    pagina recuperaCheckbox.php:
    [php]
    <?php
    $myCheck = $_POST['myCheck'];

    foreach ($myCheck as $key => $value) {
    echo "Hai selezionato la checkbox: $key con valore: $value<br />";
    }
    ?>
    [/php]

    Non è molto complesso e se ci pensi un array è la naturale soluzione al problema di ricevere molteplici valori come $_POST, $_SESSION .

    Ciao


  • Moderatore

    Quindi alla fine non mi servono due tabelle(una per la singola e una per la multipla) con tutte le possibilità, ma si agisce direttamente da codice e da lì si compila un campo prima vuoto..


  • User Attivo

    Esatto (se non ho capito male).

    In fase di visualizzazione proporrai un campo con l'unione di tutte le scelte fatte, mentre in fase di salvataggio - o meglio di scelta dei dati da salvare -
    userai liste di scelte multiple.

    Spero di averti capito.

    Ciao


  • User Attivo

    Esiste un plugin jquery (lato client, ma così dev'essere) che fa esattamente quello che chiedi.


  • Moderatore

    Grazie a tutti, sono riuscito a risolvere con gli array(poi andavano manipolati e ci ho perso un po' di tempo ma sinceramente prima non sapevo nemmeno da dove partire..).
    Ho completato tutto, mi manca solo la funzione filtro. In pratica devo fare un form identico a quello di inserimento che però filtra i dati in modo da mostrare solo quelli che soddisfino determinate caratteristiche.
    Come posso fare?