Joomla.it Forum
Componenti per Joomla! => Gestione Form => : jurassic 15 Jul 2016, 09:56:31
-
Salve a tutti. Espongo subito il problema.
In un form con l’obiettivo di inserire tramite TexBox la somma di ore e minuti ho impostato:
In Designer:
Un Custom code con due TextBox hh:mm con questo codice: <input name="orario_1" id="orario_1" value="<?=$_POST['orario_1'];?> idem orario_2 per inserire ore e minuti e un pulsante Submit con questo codice: <input type="submit" name="sommatoria" value="sommatoria"> per inviare il contenuto dei singoli TextBox ed il totale della somma.
In Setup:
On load-> un Html Render form-> un DB Read
On Submit -> un Custom Code con codice Php che tramite una funzione effettua la somma dei campi e stampa a video il totale della somma.
Subito dopo un DB Save
Il tutto funziona bene, tranne una cosa: quando viene fatta la somma il form stampa a video il totale ma invia nella tabella MySql solo il contenuto dei singoli campi sommati e non il totale della somma.
Dopo svariate prove di configurazione della funzione php non riesco ancora a fare registrare nel Db il totale della somma. Questo dipende dalla funzione Php oppure occorre un settaggio particolare del Setup del form?
Vi ringrazio in anticipo.
-
Se non metti un campo somma dove vuoi che venga salvato il risultato? Ma in genere i campi calcolati possono rimanere fittizi, cioè senza essere salvati, se hai bisogno di immagazinare anche i risultati aggiungi la relativa tabella.
-
Grazie per la risposta.
La tabella e stata creata in automatico da chronoform e il campo per memorizzare la somma l'ho creato io su MySql ma continua a memorizzare solo i campi che vengono sommati ma non il totale cioè la somma. Nonostante tutte le modifiche che che ho apportato alla funzione stampa sempre la somma a video. Da cosa può dipendere?
-
In On Submit prima di db save devi inserire un custom code in cui con php assegni alla variabile $form->data['nome_campo_somma_in tabella'] il valore ottenuto dalla somma dei due campi.
Questo permetterà di creare il valore del nuovo campo da registrare in tabella.
Il valore dei campi inseriti dopo l'invio lo trovi in php nelle variabili $form->data['orario_1'] e $form->data['orario_2'].
Credo che $_POST['orario_1'] in chronoforms non abbia alcun significato e crei problemi per la sicurezza del codice.
-
Salve Vales.
Ho provato a fare l'aggiunta $form->data['nome_campo_somma_in tabella'] nel custom code che gestisce la funzione php, ho provato anche con due custom code separati ma continua a NON inserire il totale. La funzione stampa a video la somma ma inserisce nel campo della tabella il Name testuale del pulsante Submit e non il valore numerico della somma.
In realtà sono al punto di partenza.
-
Mi fai vedere il custom code che stai utilizzando
-
Ora funziona benissimo.
Buono a sapersi che $_POST in CF può essere potenzialmente pericoloso.
GRAZIE VALES