Back to top

Autore Topic: RISOLTO - Campo Indice  (Letto 2238 volte)

Offline ItalPascal

  • Appassionato
  • ***
  • Post: 457
    • Mostra profilo
RISOLTO - Campo Indice
« il: 19 Nov 2014, 16:21:09 »
Utilizzando un form generato da Chronoform e creando una tabella mi genera automaticamente il campo indice ( id INT(11) )
Vorrei avere la possibilità di avere un campo "univoco" ( esempio il CodiceFiscale ) in modo tale da poter rifiutare l'inserimento doppio.
Questo tipo di controllo come posso inserirlo ?
« Ultima modifica: 22 Nov 2014, 17:46:58 da ItalPascal »
Se vuoi prenderti del tempo per "rilassare" corpo e mente visita www.marilontani.com

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:Campo Indice
« Risposta #1 il: 20 Nov 2014, 19:38:43 »
Immaginando l'uso di ChronoForm v5 dovresti inserire in On Submit del codice che verifica se nella tabella esistente contiene il codice fiscale inserito nel form. Se il risultato è positivo segnala il fatto e ripropone il form altrimenti registra i dati nella tabella di database.
Download e demo di Albo Pretorio On Line per Joomla 1.5 e Joomla 2.5 e 3
Moduli scuola On Line v1 per Joomla 3
http://valesweb.altervista.org

Offline ItalPascal

  • Appassionato
  • ***
  • Post: 457
    • Mostra profilo
Re:Campo Indice
« Risposta #2 il: 21 Nov 2014, 14:22:04 »
ok, provo a scrivere un po di codice, grazie e per adesso lascio in sospeso questo post.
Se vuoi prenderti del tempo per "rilassare" corpo e mente visita www.marilontani.com

Offline ItalPascal

  • Appassionato
  • ***
  • Post: 457
    • Mostra profilo
Re:Campo Indice
« Risposta #3 il: 21 Nov 2014, 17:01:23 »
Ciao Vales, ho aggiunto un index con il campo "unique" da phpmyadmin . Infatti adesso se inserisco un codice già esistente mi va in "errore con record già esistente". ( tipo pagina inesistente, na schifezza  :(  )
a questo punto dovrei inserire il controllo che mi dicevi in On Submit.
Se creo un db temporaneo ( solo tabella interessata) e faccio il controllo sulla tabella già esistente potrebbe essere un problema ?
Altrimenti una cosa del genere :
$timbro_control = mysql_query("SELECT Timbro FROM `zpx0k_chronoengine_chronoforms_db_Associati` WHERE timbro = '$timbro'");
if(mysql_num_rows($timbro_control)) {
print "Timbro già utilizzato";
} else {
//OK
}
?>
« Ultima modifica: 21 Nov 2014, 17:04:17 da ItalPascal »
Se vuoi prenderti del tempo per "rilassare" corpo e mente visita www.marilontani.com

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:Campo Indice
« Risposta #4 il: 21 Nov 2014, 19:17:46 »
Quella può essere una via, ma comunque è meglio utilizzare le API di Joomla piuttosto che php puro, per motivi di sicurezza.

Qui trovi le info per le API http://docs.joomla.org/Selecting_data_using_JDatabase

Comunque nel tuo caso non è  necessario scrivere tanto codice. Puoi mettere un'action Db read in On submit configurarla sulla stessa tabella con un model diverso da quello di Db save, l'unico codice che devi scrivere è quello del filtro sul campo codice fiscale.

In un'action successiva Event switcher, con poco codice, fai la verifica se è stato trovato o no il codice fiscale e poi di conseguenza dirigi il controllo del flusso nel codice alle azioni successive necessarie o per ritornare al form o per salvare i dati.
Download e demo di Albo Pretorio On Line per Joomla 1.5 e Joomla 2.5 e 3
Moduli scuola On Line v1 per Joomla 3
http://valesweb.altervista.org

Offline ItalPascal

  • Appassionato
  • ***
  • Post: 457
    • Mostra profilo
Re:Campo Indice
« Risposta #5 il: 22 Nov 2014, 10:20:10 »
Ciao Vales, volevo chiederti ( aggirando tutto il discorso precedente ) io ho un form che mi salva i dati nella tabella.
Io sto usando Chronoform5

Se seguo la tua guida http://www.joomla.it/articoli-community-16-e-17-tab/5327-guida-2-joomla-17-e-chronoforms-interagire-con-il-database.html  , modificando i campi che ho nel mio form posso arrivare all'esempio che hai fatto ?
Sto controllando il mio form con l'esempio che hai fatto qui : http://www.joomla.it/articoli-community-16-e-17-tab/5234-guida-1-creare-form-in-joomla-17-con-chronoforms-v4-rc-20.html
In questo modo chi inserisce i dati visualizzando il dato doppio lo può modificare correggendolo.


Aggiungo ora.Utilizzando Chronoform5 non riesco a seguire il tuo esempio, sono molto diversi i menu. Provo a caricare chronoform-v4.
Chiaramente devo rifare tutto il form visto che non accetta il backup fatto con V5


« Ultima modifica: 22 Nov 2014, 14:52:09 da ItalPascal »
Se vuoi prenderti del tempo per "rilassare" corpo e mente visita www.marilontani.com

Offline ItalPascal

  • Appassionato
  • ***
  • Post: 457
    • Mostra profilo
Re:Campo Indice
« Risposta #6 il: 22 Nov 2014, 17:01:51 »
Ciao Vales, ho finito di rifare tutto il form e seguito il tuo esempio.


Funziona in parte e in modo anomalo.
Quando seleziono un record, lo modifico e lo salvo mi crea un altro record ( non salva quello selezionato )
Altra cosa strana, visualizzo "due" liste di record ( vedi mg )
Cosa posso aver combinato ? sto ripassando tutto ma non trovo le differenze.  :(


ps: se si trova il modo farlo con la versione V5 non sarebbe male  ;)

[allegato eliminato automaticamente dopo un anno]
« Ultima modifica: 22 Nov 2014, 17:25:24 da ItalPascal »
Se vuoi prenderti del tempo per "rilassare" corpo e mente visita www.marilontani.com

Offline ItalPascal

  • Appassionato
  • ***
  • Post: 457
    • Mostra profilo
Re:RISOLTO - Campo Indice
« Risposta #7 il: 22 Nov 2014, 17:49:30 »
OK, ho risolto. GRAZIE mille.
Avevo sbagliato la configurazione del "campo nascosto"
Al momento vado avanti con questa soluzione.
Resto però dell'idea di trovare la stessa strada con la versione di Chronoform V5.
Risulta graficamente meglio  :D
Se vuoi prenderti del tempo per "rilassare" corpo e mente visita www.marilontani.com

 



Web Design Bolzano Kreatif