Joomla.it Forum
Forum traduzioni italiano => Le traduzioni e le informazioni della community => Articoli della community => : vales 08 Mar 2016, 16:53:29
-
Uno dei più problemi che spesso troviamo nella creazione di un form è la creazione di campi dropdown dinamici in cui i valori di un campo dipendono dalla scelta compiuta in precedenti campi dropdown. Ad esempio i classici campi regione, provincia e comune, i cui dopo la scelta della Regione nel campo regione, nel campo provincia si visualizzano solo le Province della regione e poi nel campo comune i solo Comuni della Provincia selezionata nel campo provincia.
In questa guida vedremo come creare con Chronoforms v5, partendo dall'esempio regioni-province-comuni, i legami fra i campi dropdown per ottenere l'effetto desiderato.
Il metodo consente teoricamente di concatenare un numero illimitato di dropdown.
Link all'articolo: http://www.joomla.it/e-ancora/articoli-community-3x/8172-form-e-campi-dropdown-dinamici-con-chronforms-e-ajax.html
-
Ottima guida vales. Complimenti !
Me la salvo subito.
-
Super Guida!
Super Valerio!
Grazie infinite.
-
Articolo di fondamentale importanza che consente la creazione di molte ricorrenti applicazioni web anche a chi non fa eccessivo ricorso a codice.
Grazie Vales
-
complimenti per la guida davvero molto tecnica e ottima.
Ultimamente mi sono avvicinato a ***** un po' per la sua semplice intuitività e praticità però chronoforms pur essendo più macchinoso e magari non immediatamente comprensibile credo sia leggermente migliore o almeno permette di fare cose più complesse.
Cosa ne pensate ?
edit by mod. No a citazione prodotti commerciali.
-
Scusa a parte la citazione commerciale stai paragonando due mondi diversi, che fanno cose diverse, inutile scendere nei dettagli e andare ot, limitiamoci ad apprezzare ( o criticare se il caso) l'ottima guida e ringraziare il sempre disponibile Vales.
-
come sempre Vales, chiaro e facile da seguire. Complimenti ;)
-
Ciao a tutti, ho seguito il progetto e mi è sembrato di facile applicazione. Però quando poi ti manca l'appoggio... ;-) Ho provato a "circondare" le select con altri dati per creare un form contatto. Alla fine con invio parte l'email con tutti i dati {nome} {email} ecc. ed è tutto a posto tranne che per le select dinamiche. Ovvero se inserisco il Name delle select di regione provincia e comune arriva solo l'id usato per il riempimento delle select.
Nome: {nome}
Regione: {regioni}
Provincia: {province}
Città: {comuni}
Telefono: {telefono}
Email: {email}
Oggetto: {oggetto}
Messaggio: {messaggio}
A questo punto necessiterebbe di una query che filtri i nomi regione provincia e comune in base agli id selezionati.
Dove va posizionata la query? nel Custom?
e la stessa query come dovrebbe essere impostata?
Grazie in anticipo a chi vorrà rispondermi.
-
devi inserire delle dbread, con nuovi model id e in conditions il filtro su id, dopo dbsave e prima dell'action email in cui leggi i valori dei nomi delle tabelle regioni province e comuni e subito dopo un campo custom in cui con php assegni i valori trovati ad altrettanti valori dei campi che vuoi mostrare.
Esempio supponiamo che i nuovi model id siano regioni_1, province_1, comuni_1 il custom code sarà qualcosa di questo tipo
<?php
$form->data['regione']=$form->data['regione_1']['nome_regione'];
$form->data['provincia']=$form->data['provincia_1']['nome_provincia'];
$form->data['comune']=$form->data['comune_1']['nome_comune'];
?>
Ovviamente i nomi veri di campi e variabili dipenderanno dai valori reali che hai utilizzato.
-
Ho fatto un altro ragionamento. Partendo dal presupposto che le tabelle sono "statiche" ovvero non devono essere aggiornate, perchè non usare gli id anzichè numerici direttamente nominali?
Ho variato gli id nelle tabelle riportando i rispettivi nomi sia per regioni che per province che per comuni.
Le select si popolano lo stesso e i nomi tornano anche per le email. Mi sembra che alla fine ci sia un risparmio di codice.
Quindi funziona. ma da non esperto mi chiedo, dov'è l'inghippo? :o ;D
-
piccola domanda, se io volessi agganciare la tabella del primo dropdown (quindi regione) all'id degli utenti di joomla, posso farlo ??
cioè, dato l'id utente in automatico compila i 3 dropdown in questione (che siano regionale province comuni o altro)
-
piccola domanda, se io volessi agganciare la tabella del primo dropdown (quindi regione) all'id degli utenti di joomla, posso farlo ??
cioè, dato l'id utente in automatico compila i 3 dropdown in questione (che siano regionale province comuni o altro)
dipende dalla relazione che c'è fra id utente e le tabelle regione, provincia, comune, la tabella degli utenti #__users non ha relazioni con essi, almeno che l'id utente non venga preso da altra tabella che ha qualche relazione es. comune da cui di può riconstruire provincia e regione.
-
devi inserire delle dbread, con nuovi model id e in conditions il filtro su id, dopo dbsave e prima dell'action email in cui leggi i valori dei nomi delle tabelle regioni province e comuni e subito dopo un campo custom in cui con php assegni i valori trovati ad altrettanti valori dei campi che vuoi mostrare.
Esempio supponiamo che i nuovi model id siano regioni_1, province_1, comuni_1 il custom code sarà qualcosa di questo tipo
<?php
$form->data['regione']=$form->data['regione_1']['nome_regione'];
$form->data['provincia']=$form->data['provincia_1']['nome_provincia'];
$form->data['comune']=$form->data['comune_1']['nome_comune'];
?>
Ovviamente i nomi veri di campi e variabili dipenderanno dai valori reali che hai utilizzato.
penso che questo sia il mio stesso problema, in poche parole i dropdown dinamici (nel database) si salvano gli id e non i campi con il nome corretto come dovrei. Ho 4 dropdown dinamici.
ho provato a creare un custom code prima del dbsave finale del form con questo codice
<?php
$form->data['dropdown1']=$form->data['modelID']['nomeCampoDaSalvareNelDB'];
?>
ma non funziona, forse sbaglio qualcosa...
-
È normale che vengano salvati gli id, perché poi per visualzzare il campo corrispondente nella visualizzazione del form basta fare una select che riporta il nome del campo relazionato dall'id.
-
È normale che vengano salvati gli id, perché poi per visualzzare il campo corrispondente nella visualizzazione del form basta fare una select che riporta il nome del campo relazionato dall'id.
perchè lui prende i valori che si relazionano (id), avevo intuito...
una select va posizionata in un custom prima del db save? non riesco a trovare esempi nè sul forum nè su google...
-
Scusa tu dove vuoi visualizzare i nomi perché nel form di immissione vedi gia i nomi.
-
Scusa tu dove vuoi visualizzare i nomi perché nel form di immissione vedi gia i nomi.
esatto
io ho 4 dropdown dinamici, nei drop vedo correttamente il campo con la descrizione, ma quando salvo il form nel database si salvano gli id di queste voci, non i nomi che visualizzo all'interno del drop
siccome poi effettuo una modifica tramite chronoconnectivity di questo form salvato, avrei bisogno di vedere i nomi e non gli id...
è l'ultimo passo da sistemare per completare un sistema di assistenza tecnica , composta da form di salvataggio con CF e modifica con CC, che nei prossimi giorno metterò a disposizione degli utenti (è da molti mesi che ci lavoro)...
-
Non uso e non conosco a fondo chrono... credo che dovresti ricostruire il form in chronoconn.... allo stesso modo. Il principio e quello. Chrono è ottimo per fare form semplici ma difficilissimo se devi costruire un applicazione, io uso ormai come sai adesso, datagrill che ti genera in modo automatico vista, dettaglio ed in questi senza fare nulla in più puoi editare, creare, cancellare, selezionare, ricercare, ecc. Lo trovo semplice nel costruire appilcazioni anche complesse con minimo intervento.
-
Non uso e non conosco a fondo chrono... credo che dovresti ricostruire il form in chronoconn.... allo stesso modo. Il principio e quello. Chrono è ottimo per fare form semplici ma difficilissimo se devi costruire un applicazione, io uso ormai come sai adesso, datagrill che ti genera in modo automatico vista, dettaglio ed in questi senza fare nulla in più puoi editare, creare, cancellare, selezionare, ricercare, ecc. Lo trovo semplice nel costruire appilcazioni anche complesse con minimo intervento.
si, infatti mi sono promesso di studiarlo e magari convertire il lavoro su datagrill/xataface, ormai sono alla fine e quindi concludo con CF/CC
però CC in questa fase prima del salvataggio non c'entra niente, perchè CC non fa altro che leggere il database e modificare quello che trova, invece, qua il problema è che salva nel database gli id e non i valori reali che si vedono nel dropdown mentre si compila il form. Mi sfugge questo punto....
-
Questa è materia del nostro Vales a cui passo la palla.