Joomla.it Forum

Componenti per Joomla! => Gestione Form => : ghepa 09 Feb 2017, 12:08:04

: [RISOLTO]CheckBoxGroup: Come poter salvare opzioni multiple in un unico campo DB
: ghepa 09 Feb 2017, 12:08:04
Buongiorno a tutti,

ogni tanto ritorno con le mie domande ed i miei dubbi di realizzazione sul mondo chronoforms.
Ho questo tipo di problema.

Ho costruito un form di raccolta informazioni utenti.
L'utente in questione avrà la possibilità di selezionare una o piu scelte multiple su una checkbrox group.
Per esempio:

Selezionare sport preferito:
1-xxx
2-xxx
3-xxx
4-xxx
etc etc

A questo punto però, io devo andare a salvare tutte le opzioni scelte in un unico campo SPORT all'interno del DB già collegato al chronoform.

Ho fatto una prova ed il sistema mi salva solo l'ultima opzione trascurando tutte le altre.  :(
Come faccio invece a salvarli tutti insieme?? Quindi ad esempio ritrovarmi all'interno del campo una roba simile a: xxx,yyy,zzz (separato da virgola o da altro separatore)

Grazie a tutti coloro che mi potranno aiutare.

Ciao
Marco
Salva
: Re:CheckBox Group: Come poter salvare opzioni multiple in un unico campo DB
: vales 09 Feb 2017, 14:20:09
In On Submit devi mettere un'action Handle arrays prima della Db Save.
: Re:CheckBox Group: Come poter salvare opzioni multiple in un unico campo DB
: ghepa 09 Feb 2017, 15:37:46
Ciao Vales,
intanto grazie per la risposta.

Handle Arrays non l'ho mai utilizzato finora quindi ti  faccio una domanda che ai più, potrà sembrare banalissima.
Come devo configurarlo??

Ho inserito un debugger per vedere cosa mi restituisce, però vedo che mi rilascia sempre e solo l'ultima opzione.

Come devo configurare handle action in modo tale da potermi prendere tutte le opzioni di quel checkbox group??

Ti giro il mio caso specifico, in modo tale da poterci capire meglio:

FieldName: sport
FieldID: sport
Options:
0=Calcio
1=Rugby
2=Nuoto

PErfetto.
Se l'utente seleziona tutti e tre le option, in che modo devo configurare l'handles arrays su quel checkboxgroup ?

Grazie mille
: Re:CheckBox Group: Come poter salvare opzioni multiple in un unico campo DB
: vales 09 Feb 2017, 15:53:23
Non necessita di nessuna configurazione per default agisce su tutti i campi a selezione multipla inserendo una virgola come separatore di valori.

Il debugger di controllo deve essere dopo Handle arrays.
: Re:CheckBox Group: Come poter salvare opzioni multiple in un unico campo DB
: ghepa 09 Feb 2017, 16:24:31
Ciao Vales

in realtà avevo commesso degli errori in fase di definizione del nome e nell'handles array.

Primo errore era nel Field Name della checkbox: infatti non avevo inserito le [] alla fine del Name (essendo un array), quindi :

FieldName: sport -->  sport[]

Secondo errore era che nella handles array, avevo si inserito il nome della checkbox, però non avevo inserito le parentesi graffe.
GRazie mille anche alle varie discussioni che nel frattempo ho letto con le tue risposte ad altri utenti.


EDIT:
Questo era il messaggio che ti stavo per scrivere, però non capisco perchè, ma nel debugger vedo i valori, però poi non li vedo salvati nel DB
Ti pubblico il debugger:

Array ( [option] => com_chronoforms5 [chronoform] => Frm_prenotazione_visita_medsportiva [event] => submit [cognome] => gdfgdfgdfg [nome] => dfgdf [sesso] => 0 [codfis] => dfgdfg [datanascita] => 22/02/2012 [disciplina] => 0 [societa] => dsasdasd [ambulatorio] => 1 [tuttigg] => tuttigg [sport] => Array ([0]=> 0 [1] => 1 [2] => 2 ) [telefono] => 1232456 )




Ho modificato il name_field della checkbox per indicarlo come array, però non credo di poter rinominare il campo del Db allo stesso modo.


c'è qualcosa che non mi torna
: Re:CheckBox Group: Come poter salvare opzioni multiple in un unico campo DB
: vales 09 Feb 2017, 17:03:05
Non capisco a cosa riferisci le parentesi graffe.

Handle arrays lascialo come di default senza nessuna altra indicazione. A vedere il debugger mi sembra che non sta lavorando dovrebbe restituire i valori del checkbox separati da virgole e no ncome valori di array
: Re:CheckBox Group: Come poter salvare opzioni multiple in un unico campo DB
: ghepa 09 Feb 2017, 17:12:53
Non capisco a cosa riferisci le parentesi graffe.

Handle arrays lascialo come di default senza nessuna altra indicazione. A vedere il debugger mi sembra che non sta lavorando dovrebbe restituire i valori del checkbox separati da virgole e no ncome valori di array


Avevo trovato una tua discussione di un po di tempo fa (però si parlava di un'altra versione di CF), dove dicevi all'utente in questione che, il name_field della checkbox in input doveva essere con le parentesi quandre, quindi ne mio caso sport[], mentre in handles array, andava richiamato il campo però tra parentesi graffa.


QUindi faceva riferimento a questo.
Tornando a noi:

OK, quindi se nella handles non devo toccare nulla perchè, come mi dicevi prima, prende in considerazione tutti i campi con selezione multipla, a questo punto l'unica cosa che devo toccare son i parametri della checkbox.



 In questo momento, è così strutturato:

FieldName: sport[]
FieldID: sport
Options:
0=Calcio
1=Rugby
2=Nuoto

Il debugger restituisce questo:

Array ( [option] => com_chronoforms5 [chronoform] => Frm_prenotazione_visita_medsportiva [event] => submit [cognome] => prova [nome] => prova [sesso] => 1 [codfis] => prova [datanascita] => 11/11/2011 [disabile] => 0 [disciplina] => 2 [societa] => eqweqw [ambulatorio] => 1 [tuttigg] => tuttigg [lunedi] => lunedi [sport] => 0,1 [telefono] => eqw  => eqweqw [note] => qeweqw)


Ora i valori dell'array li mette con le virgole, però non appena tolto il debugger e provo a salvarli nel db, il campo SPORT nel DB è vuoto.... :(
Salva
Salva
: Re:CheckBox Group: Come poter salvare opzioni multiple in un unico campo DB
: vales 09 Feb 2017, 19:36:17
db save deve essere dopo Handle Arrays e nel database il nome del campo(colonna) sport deve essere uguale a quello nel form. sport e SPORT sono cose diverse.
: Re:CheckBox Group: Come poter salvare opzioni multiple in un unico campo DB
: ghepa 09 Feb 2017, 21:46:13

db save deve essere dopo Handle Arrays e nel database il nome del campo(colonna) sport deve essere uguale a quello nel form. sport e SPORT sono cose diverse.

Ciao vales, scusami, ti ho confuso le idee con quel "sport" in maiuscolo.
Entrambi i nomi son trascritti in modo uguale.

'sport' come field name della checkbox (naturalmente seguita dalle parentesi quadra per via dell'array, quindi sport[] ) e 'sport' come colonna della tabella del DB.

Purtroppo ancora nulla, non funziona. :(

Dentro on summit c'è:
Handles Arras
Debugger
DB save
DB message
: Re:CheckBox Group: Come poter salvare opzioni multiple in un unico campo DB
: ghepa 10 Feb 2017, 15:04:38
CIao Vales,

finalmente son riuscito a risovlere la problematica.
Purtroppo ieri sera, dopo che ti ho scritto, ho fatto un pò di prove senza riuscire a capire qual'era il problema (ed in effetti non sbagliavo).

Stamane mi son fatto prendere da una pazzia ed ho rifatto totalmente il form (ieri avevo utilizzato un duplicato già sviluppato qualche mese)
Probabilmente c'era qualcosa che "non vedevo" e che non faceva fare le cose in modo corretto.
Non ho idea di cosa non funzionava, ma sta di fatto che, col form rifatto da zero, ha funzionato tutto.

Grazie mille di tutto come sempre.

Ciao
Marco