Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776

    Realizzare un form con 200 campi con risposte vincolanti

    Ciao a tutti,
    devo realizzare un form con circa 200 campi su diverse pagine (l'utente devo poter andare avanti e indietro senza perdere i dati inseriti), alcuni campi sono a risposta multipla, altri a risposta singola e i dati vengono presi da diverse tabelle del DB (nel caso di option e checkbox), altri sono a testo libero, altri sono risposte si/no, in altri campi devo poter inserire N record (esempio: utenti partecipanti).
    Alcuni campi sono vincolanti con altri e tra questi campi bisogna fare l'upload di diversi file.
    L'utente deve poter salvare lo stato in qualsiasi momento per poter continuare in un altro momento anche da un altro computer (per quanto riguarda questo punto ci sar� un codice univoco che identificher� il form).

    Stavo pensando di effettuare un unico form con le 200 domande, le differenti pagine saranno dei DIV e in base alla pagina in cui mi trovo nascondere i restanti DIV.
    Ci saranno 3 bottoni 'avanti', 'indietro', 'registra e esci'.
    Stavo pensando con AJAX, di generare una chiamata ogni volta che viene premuto uno di questi tre bottoni con tutti i dati del form e la pagina in cui si trova l'utente, verificare i dati lato javascript, chiamata Ajax, verificare i dati lato php, convertirlo in json e salvarlo in una tabella, associandolo al codice univoco che mi identifica il form.
    In alto ci saranno poi dei bottoni che mi identificano il numero delle pagine, e potranno avere 3 stati:
    verde, ok
    rosso, pagina con errori
    bianco, pagina non iniziata
    Se l'utente ritorna sul form in un secondo momento, caricare i dati del formulario dalla tabella, popolare i campi del form e far continuare l'utente.
    Per quanto riguarda la gestione dei file (caricati dall'utente), verranno inviati immediatamente con una chiamata ajax, non appena l'utente li sceglie. Nel json salver� solo il nome del file nella directory temporale che utilizzer� per fare l'upload dei file.
    Una volta completato il form, scriver� i dati nelle rispettive tabelle del DB.

    Cosa ne pensate?
    Qualsiasi suggerimento e ben accetto!

    Grazie,
    Roberto

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    L'idea di simulare le pagine con dei div da mostrare o nascondere non è male, potrebbe evitarti di mettere dati in sessione e fare controlli vari per selezionare il valore corretto di checkbox, radio e select al cambio di pagina.
    Se vuoi dare l'opportunità di salvare la compilazione e riprenderla in un secondo momento le strade sono 2, salvare i dati provvisoriamente in una tabella come hai già pensato oppure salvarli in un cookie, ma questa seconda soluzione la scarterei, quindi va bene metterli nel DB.

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    L'idea di simulare le pagine con dei div da mostrare o nascondere non è male, potrebbe evitarti di mettere dati in sessione e fare controlli vari per selezionare il valore corretto di checkbox, radio e select al cambio di pagina.
    Se vuoi dare l'opportunità di salvare la compilazione e riprenderla in un secondo momento le strade sono 2, salvare i dati provvisoriamente in una tabella come hai già pensato oppure salvarli in un cookie, ma questa seconda soluzione la scarterei, quindi va bene metterli nel DB.
    L'unico dubbio che ho, visto che non ho mai fatto un form così grande, non potrebbe diventare troppo "pesante", lato cliente, manipolare tutti questi dati?
    ...soprattuto se lo compila da un tablet, da cellulare lo escludo categoricamente dal momento che solo un "pazzo" si metterebbe a compilare un form di tale dimensioni e testo da cellulare!


    Roberto

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.