Back to top

Autore Topic: Checkbox - Event Switcher - DB Save  (Letto 2683 volte)

Offline markuty

  • Esploratore
  • **
  • Post: 68
  • Sesso: Maschio
    • Mostra profilo
Checkbox - Event Switcher - DB Save
« il: 07 Gen 2018, 17:47:19 »
Saluti a tutti,

ho creato un form (chronoforms5) dove tutti i dati inseriti nei campi 1,2,3,4,5,6,7,8,9, vengono salvati in una tabella "generale" di DB, e tutto funziona!!!

Ora voglio creare, attraverso dei checkbox, che se selezionati, solo alcuni dati del form vadano a riempire altre tabelle di DB.
Ossia se il checkbox A è selezionato caricherà i dati dei campi 1,3,6,7, nella tabella AAA, se il checkbox B è selezionato caricherà i dati dei campi 2,3,6,8, nella tabella BBB; se non sono selezionati non verrà salvato nessun dato nella tabelle AAA e BBB ma solo nella tabella "generale".

Così ho proceduto:
1. creato le tabelle AAA e BBB con i compi relativi;
- Designer
2. creato i checkbox A e B (esempio solo per A) con:
    Field Name "A" - Field ID "A" - Field Value "1"
    Validation "NO"
    Event "check", Action "enable", Element ID/fn()Event "invia" (che è l'ID del pulsante submit)
- Setup - On submit
3. DB Save (che carica i dati nella tabella "generale";
4. Event Switcher - Edit
Action Label "DB_AAA",
Events "success,fail"
code:
<?php
if ( $form->data['A'] == 'invia' ) {
  return 'success';
} else {
  return 'fail';
}
?>
- On success
DB Save - Edit
    -Action label "DB_dati_AAA"
    -Enabled "yes"
    -Table name "xxx_AAA"
    -Save under Model ID "No"
    -Multi save "No"
    -Model ID " "
    -Force save "No"
    -Update conditions " "
- On fail
    nulla.

Ma il tutto non funziona... evidentemente le mie sufficienti conoscenze di php e chronoforms non bastano...
Grazie per l'aiuto.

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:Checkbox - Event Switcher - DB Save
« Risposta #1 il: 08 Gen 2018, 19:14:56 »
Nel tuo caso $form->data['A'] ha valore 1 o altro non "invia", e quindi nel Event Switcher non viene mai trovato.

lo stesso per il check B.

Quindi penso che dovresti rivedere il codice php che hai elaborato.
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 markuty

  • Esploratore
  • **
  • Post: 68
  • Sesso: Maschio
    • Mostra profilo
Re:Checkbox - Event Switcher - DB Save
« Risposta #2 il: 08 Gen 2018, 19:42:10 »
Grazie Vales,
ok, in effetti...
proverò a cambiare il valore e ti saprò dire se il tutto funziona...

Offline markuty

  • Esploratore
  • **
  • Post: 68
  • Sesso: Maschio
    • Mostra profilo
Re:Checkbox - Event Switcher - DB Save
« Risposta #3 il: 13 Gen 2018, 20:03:38 »
Buona sera...
ho cambiato il valore "invia" con "1" (Field Value "1" del checkbox)

<?php
if ( $form->data['A'] == '1' ) {
  return 'success';
} else {
  return 'fail';
}
?>

e l'Event Switcher funziona caricando i dati nella tabella AAA, ma solo in quella e non più anche in "generale".

Ossia carica i dati solo nel primo "DB Save" che trova in "On submit"

Ho creato anche un altro Event Switcher con i dati della tabella BBB ma anche in questo caso carica i dati del primo DB Save che trova.

Ho provato a fare un solo Event Switcher con il codice:

<?php
if ( $form->data['A'] == '1' ) {
  return 'success';
}
if ( $form->data['B'] == '1' ) {
  return 'success';
}
else {
  return 'fail';
}
?>
e due DB Save (per tabelle AAA e BBB) in "On success", ma la cosa non cambia.

Ho provato inoltre ad attivare, nell'Edit dei rispettivi DB Save, "Save under Model ID" ed ad indicare Model ID diversi... ma in questo caso non carica nulla.

Come posso fare? Grazie.

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:Checkbox - Event Switcher - DB Save
« Risposta #4 il: 14 Gen 2018, 10:51:58 »
Il valore di invia è indifferente in questo caso, invia serve solo a far partire il form.

C'è sicuramente un problema di logica nel flusso dei dati in On submit.

Secondo me dovrebbe essere questa la sequenza semplificata delle action.

1) Event switcher A
se successo salva nel dbave contenuto nell'events switcher i valori  destinati a tabella AAA

2) Event switcher B
se successo salva nel dbave contenuto nell'events switcher i valori  destinati a tabella BBB

3) dbsave generale salva sempre tutti i dati

In questo caso non sono necessari model nei dbsave, anche perchè i campi in designer devono essere impostati senza model.
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 markuty

  • Esploratore
  • **
  • Post: 68
  • Sesso: Maschio
    • Mostra profilo
Re:Checkbox - Event Switcher - DB Save
« Risposta #5 il: 14 Gen 2018, 11:48:52 »
ok, provo...
Grazie Vales

 



Web Design Bolzano Kreatif