• User

    Inserimento dati da due o più form

    Salve a tutti.
    Premetto che mi sono avvicinato a php da poco tempo e alla preparazione teorica cerco di accostare anche la pratica.

    Come da titolo, vorrei memorizzare nel database i dati (Nome, Cognome, Email etc.) inseriti attraverso due form distinti contenuti nella stessa pagina.
    La situazione è aggiunta di un nucleo familiare: 1° form "Inserimento primo componente", 2°form "Inserimento secondo componente" bottone per salvataggio o link per aggiungere altro form.
    La pagina dei form è questa
    [HTML] <div class="primary-content">
    <form role="form" action="aggiungere.php" method="post" class="registration-form">
    <fieldset>
    <div class="form-top">
    <div class="form-top-left">
    <h3>Componenti nucleo familiare</h3>
    <p>Step 2 / 4 </p>
    </div>
    <div class="group-icon">
    <img src="/images/family.png" alt="Famiglia singolo" />
    <span>Nucleo familiare</span>
    </div>
    </div>
    <div class="form-bottom">
    <div class="row">
    <h3 class="form-title"><span>Registrazione primo componente</span></h3>
    <button type="button" class="btn btn-previous abs">Indietro</button>
    <div class="col-xs-12 col-sm-6 col-md-6 col-lg-3">
    <label for="form-nome">Nome</label>
    <input type="text" name="nome[]" class="form-control field" id="form-nome" />
    </div>
    <div class="col-xs-12 col-sm-6 col-md-6 col-lg-3">
    <label for="form-cognome">Cognome</label>
    <input type="text" name="cognome[]" class="form-control field" id="form-cognome" />
    </div>
    <div class="col-xs-12 col-sm-6 col-md-6 col-lg-3">
    <label for="form-cfiscale">Codice fiscale</label>
    <input type="text" name="cfiscale[]" class="form-control field" id="form-cfiscale" />
    </div>
    <div class="col-xs-12 col-sm-6 col-md-6 col-lg-3">
    <label for="form-datanascita">Data di nascita</label>
    <input type="text" name="datanascita[]" placeholder="GG/MM/AAAA" class="form-control field" id="form-datanascita" />
    </div>
    </div>
    <div class="row">
    <div class="col-xs-12 col-sm-3 col-md-3 col-lg-2">
    <label for="form-sesso">Sesso</label>
    <input type="text" name="sesso[]" placeholder="es. M/F" class="form-control field" id="form-sesso" />
    </div>
    <div class="col-xs-12 col-sm-5 col-md-4 col-lg-2">
    <label for="form-soccupazionale">Stato occupazionale</label>
    <select name="soccupazionale[]" class="form-control field" id="form-soccupazionale">
    <option value="0">Inoccupato</option>
    <option value="1">Occupato</option>
    <option value="2">Occupato</option>
    <option value="3">Altro...</option>
    </select>
    </div>
    <div class="col-xs-12 col-sm-4 col-md-5 col-lg-3">
    <label for="form-cittadinanza">Cittadinanza</label>
    <input type="text" name="cittadinanza[]" class="form-control field" id="form-cittadinanza" />
    </div>
    <div class="col-xs-12 col-sm-6 col-md-6 col-lg-2">
    <label for="form-telefono">Telefono</label>
    <input type="text" name="telefono[]" placeholder="+39" class="form-control field" id="form-telefono" />
    </div>
    <div class="col-xs-12 col-sm-6 col-md-6 col-lg-3">
    <label for="form-email">E-mail</label>
    <input type="text" name="email[]" placeholder="es. [email protected]" class="form-control" id="form-email" />
    </div>
    <div class="col-xs-12">
    <label for="form-email">Note aggiuntive</label>
    <textarea class="form-control low-hight" cols="4" rows="4" name="note[]"></textarea>
    </div>
    </div>
    <div class="row components">
    <h3 class="form-title"><span>Ruolo componente</span></h3>
    <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3">
    <div class="input-group">
    <input type="radio" value="1" tabindex="1" id="radio-choice-1" name="ruolofam[]"/>
    <label>Padre</label>
    </div>
    </div>
    <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3">
    <div class="input-group">
    <input type="radio" value="2" tabindex="2" id="radio-choice-2" name="ruolofam[]" />
    <label>Madre</label>
    </div>
    </div>
    <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3">
    <div class="input-group">
    <input type="radio" value="3" tabindex="3" id="radio-choice-3" name="ruolofam[]" />
    <label>Figlio/a</label>
    </div>
    </div>
    <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3">
    <div class="input-group">
    <input type="radio" value="4" tabindex="4" id="radio-choice-4" name="ruolofam[]" />
    <label>Nonno/a</label>
    </div>
    </div>
    <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3">
    <div class="input-group">
    <input type="radio" value="5" tabindex="5" id="radio-choice-5" name="ruolofam[]" />
    <label>Zio/a</label>
    </div>
    </div>
    <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3">
    <div class="input-group">
    <input type="radio" value="6" tabindex="6" id="radio-choice-6" name="ruolofam[]" />
    <label>Cugino/a</label>
    </div>
    </div>
    <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3">
    <div class="input-group">
    <input type="radio" value="7" tabindex="7" id="radio-choice-7" name="ruolofam[]" />
    <label>Altro</label>
    </div>
    </div>
    </div>
    <!-- AGGIUNTA COMPONENTI NUCLEO FAMILIARE -->
    <div class="add-component" id="component01">
    <div class="form-bottom component">
    <div class="row">
    <h3 class="form-title"><span>Aggiungi componente</span></h3>
    <div class="col-xs-12 col-sm-6 col-md-6 col-lg-3">
    <label for="form-nome">Nome</label>
    <input type="text" name="nome[]" class="form-control field" id="form-nome" />
    </div>
    <div class="col-xs-12 col-sm-6 col-md-6 col-lg-3">
    <label for="form-cognome">Cognome</label>
    <input type="text" name="cognome[]" class="form-control field" id="form-cognome" />
    </div>
    <div class="col-xs-12 col-sm-6 col-md-6 col-lg-3">
    <label for="form-cfiscale">Codice fiscale</label>
    <input type="text" name="cfiscale[]" class="form-control field" id="form-cfiscale" />
    </div>
    <div class="col-xs-12 col-sm-6 col-md-6 col-lg-3">
    <label for="form-datanascita">Data di nascita</label>
    <input type="text" name="datanascita[]" placeholder="GG/MM/AAAA" class="form-control field" id="form-datanascita" />
    </div>
    </div>
    <div class="row">
    <div class="col-xs-12 col-sm-3 col-md-3 col-lg-2">
    <label for="form-sesso">Sesso</label>
    <input type="text" name="sesso[]" placeholder="es. M/F" class="form-control field" id="form-sesso" />
    </div>
    <div class="col-xs-12 col-sm-5 col-md-4 col-lg-2">
    <label for="form-soccupazionale">Stato occupazionale</label>
    <select name="soccupazionale[]" class="form-control field" id="form-soccupazionale" id="form-soccupazionale">
    <option value="0">Inoccupato</option>
    <option value="1">Occupato</option>
    <option value="2">Occupato</option>
    <option value="3">Altro...</option>
    </select>
    </div>
    <div class="col-xs-12 col-sm-4 col-md-5 col-lg-3">
    <label for="form-cfiscale">Cittadinanza</label>
    <input type="text" name="cittadinanza[]" class="form-control field" id="form-cittadinanza" />
    </div>
    <div class="col-xs-12 col-sm-6 col-md-6 col-lg-2">
    <label for="form-telefono">Telefono</label>
    <input type="text" name="telefono[]" placeholder="+39" class="form-control field" id="form-telefono" />
    </div>
    <div class="col-xs-12 col-sm-6 col-md-6 col-lg-3">
    <label for="form-email">E-mail</label>
    <input type="text" name="email[]" placeholder="es. [email protected]" class="form-control" id="form-email" />
    </div>
    <div class="col-xs-12">
    <label for="form-email">Note aggiuntive</label>
    <textarea class="form-control low-hight" cols="4" rows="4" name="note[]"></textarea>
    </div>
    </div>
    <div class="row components">
    <h3 class="form-title"><span>Ruolo componente</span></h3>
    <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3">
    <div class="input-group">
    <input type="radio" value="choice" tabindex="1" id="radio-choice-1" name="ruolofam[]" />
    <label>Padre</label>
    </div>
    </div>
    <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3">
    <div class="input-group">
    <input type="radio" value="choice" tabindex="2" id="radio-choice-2" name="ruolofam[]" />
    <label>Madre</label>
    </div>
    </div>
    <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3">
    <div class="input-group">
    <input type="radio" value="choice" tabindex="3" id="radio-choice-3" name="ruolofam[]" />
    <label>Figlio/a</label>
    </div>
    </div>
    <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3">
    <div class="input-group">
    <input type="radio" value="choice" tabindex="4" id="radio-choice-4" name="ruolofam[]" />
    <label>Nonno/a</label>
    </div>
    </div>
    <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3">
    <div class="input-group">
    <input type="radio" value="choice" tabindex="5" id="radio-choice-5" name="ruolofam[]" />
    <label>Zio/a</label>
    </div>
    </div>
    <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3">
    <div class="input-group">
    <input type="radio" value="choice" tabindex="6" id="radio-choice-6" name="ruolofam[]" />
    <label>Cugino/a</label>
    </div>
    </div>
    <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3">
    <div class="input-group">
    <input type="radio" value="choice" tabindex="7" id="radio-choice-7" name="ruolofam[]" />
    <label>Altro</label>
    </div>
    </div>
    </div>
    </div>
    </div>
    <!--<div class="add-component" id="component02">
    <div class="form-bottom component">
    <div class="row">
    <h3 class="form-title"><span>Aggiungi componente</span></h3>
    <div class="col-xs-12 col-sm-6 col-md-6 col-lg-3">
    <label for="form-nome">Nome</label>
    <input type="text" name="form-nome" class="form-control field" id="form-nome" />
    </div>
    <div class="col-xs-12 col-sm-6 col-md-6 col-lg-3">
    <label for="form-cognome">Cognome</label>
    <input type="text" name="form-cognome" class="form-control field" id="form-cognome" />
    </div>
    <div class="col-xs-12 col-sm-6 col-md-6 col-lg-3">
    <label for="form-cfiscale">Codice fiscale</label>
    <input type="text" name="form-cfiscale" class="form-control field" id="form-cfiscale" />
    </div>
    <div class="col-xs-12 col-sm-6 col-md-6 col-lg-3">
    <label for="form-datanascita">Data di nascita</label>
    <input type="text" name="form-datanascita" placeholder="GG/MM/AAAA" class="form-control field" id="form-datanascita" />
    </div>
    </div>
    </div>
    <div class="row">
    <div class="col-xs-12 col-sm-3 col-md-3 col-lg-2">
    <label for="form-sesso">Sesso</label>
    <input type="text" name="form-sesso" placeholder="es. M/F" class="form-control field" id="form-sesso" />
    </div>
    <div class="col-xs-12 col-sm-5 col-md-4 col-lg-2">
    <label for="form-soccupazionale">Stato occupazionale</label>
    <select name="form-soccupazionale" class="form-control field" id="form-soccupazionale" id="form-soccupazionale">
    <option value="0">Inoccupato</option>
    <option value="1">Occupato</option>
    <option value="2">Occupato</option>
    <option value="3">Altro...</option>
    </select>
    </div>
    <div class="col-xs-12 col-sm-4 col-md-5 col-lg-3">
    <label for="form-cfiscale">Cittadinanza</label>
    <input type="text" name="form-cittadinanza" class="form-control field" id="form-cittadinanza" />
    </div>
    <div class="col-xs-12 col-sm-6 col-md-6 col-lg-2">
    <label for="form-telefono">Telefono</label>
    <input type="text" name="form-telefono" placeholder="+39" class="form-control field" id="form-telefono" />
    </div>
    <div class="col-xs-12 col-sm-6 col-md-6 col-lg-3">
    <label for="form-email">E-mail</label>
    <input type="text" name="form-email" placeholder="es. [email protected]" class="form-control" id="form-email" />
    </div>
    <div class="col-xs-12">
    <label for="form-email">Note aggiuntive</label>
    <textarea class="form-control low-hight" cols="4" rows="4"></textarea>
    </div>
    </div>
    <div class="row components">
    <h3 class="form-title"><span>Ruolo componente</span></h3>
    <div class="col-xs-12 col-sm-6 col-md-4 col-lg-2">
    <div class="input-group">
    <input type="radio" value="choice" tabindex="1" id="radio-choice-1" name="radio-choice">
    <label>Padre</label>
    </div>
    </div>
    <div class="col-xs-12 col-sm-6 col-md-4 col-lg-2">
    <div class="input-group">
    <input type="radio" value="choice" tabindex="2" id="radio-choice-2" name="radio-choice">
    <label>Madre</label>
    </div>
    </div>
    <div class="col-xs-12 col-sm-6 col-md-4 col-lg-2">
    <div class="input-group">
    <input type="radio" value="choice" tabindex="3" id="radio-choice-3" name="radio-choice">
    <label>Figlio</label>
    </div>
    </div>
    <div class="col-xs-12 col-sm-6 col-md-4 col-lg-2">
    <div class="input-group">
    <input type="radio" value="choice" tabindex="4" id="radio-choice-4" name="radio-choice">
    <label>Figlia</label>
    </div>
    </div>
    <div class="col-xs-12 col-sm-6 col-md-4 col-lg-2">
    <div class="input-group">
    <input type="radio" value="choice" tabindex="5" id="radio-choice-5" name="radio-choice">
    <label>Nonno/Nonna</label>
    </div>
    </div>
    <div class="col-xs-12 col-sm-6 col-md-4 col-lg-2">
    <div class="input-group">
    <input type="radio" value="choice" tabindex="6" id="radio-choice-6" name="radio-choice">
    <label>Zio/Zia</label>
    </div>
    </div>
    </div>
    </div> -->
    <div class="btn-components">
    <div class="left-wrap">
    <a href="#">Aggiungi altro componente</a>
    </div>
    <div class="right-wrap">
    <button type="submit" class="btn btn-next btn-single">Salva e procedi</button>
    </div>
    <br class="clearer" />
    </div>
    </fieldset>
    </form>
    </div>[/HTML]

    Il mio database contiene una tabella "famiglia" con i campi

    IDSoggetto,IDFamiglia,Nome,Cognome,DataNascita,CodiceFiscale,Cittadinanza,IDStatoOccupazionale,Telefono,Email,IDRuoloFamiglia,Sesso,Note
    

    Con form singolo riesco a memorizzare i dati inseriti nei campi, ma aggiungendo il secondo form ho come risultato la memorizzazione dei dati inseriti in uno solo dei form!

    Come fare a memorizzare i dati di entrambi i form?
    Cercando sul web ho capito che deve essere utilizzato un foreach, Ma come utilizzarlo?

    Grazie a tutti coloro che vorranno aiutarmi. :smile5:


  • Moderatore

    Ciao jumpy83,

    Fai prima a gestire il salvataggio tramite AJAX facendo una chiamata che invia ad uno script esterno tutti i dati direttamente.
    In questo caso, dato che raccogli i dati tramite jQuery non hai il problema dei form se sono separati o su sezioni diverse.

    Se hai delle basi di jQuery ti spiego come funziona, è molto più semplice di quanto sembra.


  • User

    @MiWebDesign said:

    Ciao jumpy83,

    Fai prima a gestire il salvataggio tramite AJAX facendo una chiamata che invia ad uno script esterno tutti i dati direttamente.
    In questo caso, dato che raccogli i dati tramite jQuery non hai il problema dei form se sono separati o su sezioni diverse.

    Se hai delle basi di jQuery ti spiego come funziona, è molto più semplice di quanto sembra.

    Grazie per la risposta.
    Uhm... non avevo pensato a questa soluzione :mmm:

    Come dovrei procedere?