Autore Topic: [RISOLTO]dinamic dropdown non salva il campo nel database  (Letto 596 volte)

Offline vitofan2joomla

  • Nuovo arrivato
  • *
  • Post: 21
    • Mostra profilo
Ciao a tutti,
ho scoperto con molto dispiacere che una dropdown dinamica non salva il campo in fase di creazione del database.

La miai dropdown mi visualizza il valore di un campo di un altro database, ma come faccio a salvare quel valore nel database che sottostà al form?
« Ultima modifica: 23 Nov 2016, 23:16:48 da vitofan2joomla »

Offline vitofan2joomla

  • Nuovo arrivato
  • *
  • Post: 21
    • Mostra profilo
Re:dinamic dropdown non salva il campo nel database
« Risposta #1 il: 23 Nov 2016, 23:16:22 »
Con un pò di fortuna ho trovato questo:
  • Create a hidden field in your form for campoDaSalvare
  • add a "Custom Code" action to the "On Submit" event before your "DB Save Action"
In the Custom Code action insert PHP code to set the campoDaSalvare field to the appropriate value depending on the selected drop down value.
In ChronoForms v4 or v5, this will be something similar to this:
<?php $form->data['campoDaSalvare'] = $form->data['campoDynamicDropqown']; ?>
in sostanza creo un campo nascosto e con il codice php lo rendo uguale al valore della casella di selezione, questo ovviamente prima di salvare il record nel database.

Il campo che mi salva il valore è nascosto così chi compila il form vede solo il valore scelto nella dropdown (di nascosto invece vado a salvarlo nel database)


Offline Ago_

  • Appassionato
  • ***
  • Post: 785
  • Sesso: Maschio
    • Mostra profilo
Re:[RISOLTO]dinamic dropdown non salva il campo nel database
« Risposta #2 il: 24 Nov 2016, 22:53:15 »
ciao vitofan, oggi avevo lo stesso problema...ma la tua soluzione non mi funziona, o meglio dire, mi copia sempre l'id e non il valore che visualizzo nella dropdown dinamica.

Ho reato un costum code in OnSetup prima del dbSave come indichi, ma salva l'id e non il valore

preciso che l'id è chiave primaria di ogni tabella, non posso mettere chiave primaria il valore per problemi vari che sono lunghi da spiegare

Offline vitofan2joomla

  • Nuovo arrivato
  • *
  • Post: 21
    • Mostra profilo
Re:[RISOLTO]dinamic dropdown non salva il campo nel database
« Risposta #3 il: 25 Nov 2016, 07:22:30 »
ciao Ago_
nel mio caso nel database da cui pesco con la dropdown io ho un solo campo per cui non posso che pescare quel solo valore che seleziono......

ad ogni modo per quello che ne so io:
1) nel DB read indichi il solo campo che ti interessa? nel mio caso il campo si chiamava titolo (così forzi la lettura di un solo campo.....)


2) poi nelle proprietà della dropdown ripeti il nome del campo in tutti e due i valori che leggi sotto:

sempre da quello che ho capito io
 Value Key rappresenta il campo che passi al form come riferimento
Text Key è il valore effettivo che salvi




« Ultima modifica: 25 Nov 2016, 07:30:03 da vitofan2joomla »

Offline Ago_

  • Appassionato
  • ***
  • Post: 785
  • Sesso: Maschio
    • Mostra profilo
Re:[RISOLTO]dinamic dropdown non salva il campo nel database
« Risposta #4 il: 25 Nov 2016, 08:33:39 »
ciao Ago_
nel mio caso nel database da cui pesco con la dropdown io ho un solo campo per cui non posso che pescare quel solo valore che seleziono......

ad ogni modo per quello che ne so io:
1) nel DB read indichi il solo campo che ti interessa? nel mio caso il campo si chiamava titolo (così forzi la lettura di un solo campo.....)


2) poi nelle proprietà della dropdown ripeti il nome del campo in tutti e due i valori che leggi sotto:

sempre da quello che ho capito io
 Value Key rappresenta il campo che passi al form come riferimento
Text Key è il valore effettivo che salvi

ti ringrazio per la risposta, vado più nello specifico...

io ho concatenato piu tabelle (4) per un totale di 4 dropdown (codice cliente - nome cliente - agente - manager)

per il primo campo ho risolto il problema sopra menzionato mettendo sia in value che in text lo stesso campo (ovvero il codiceCliente), però il problema nei restanti 3 concatenati rimane, ovviamente queste 3 tabelle hanno 3 campi a testa (chiave primaria della tabella precedente, campo valore e id numerico)

Offline vitofan2joomla

  • Nuovo arrivato
  • *
  • Post: 21
    • Mostra profilo
Re:[RISOLTO]dinamic dropdown non salva il campo nel database
« Risposta #5 il: 25 Nov 2016, 17:40:44 »
ciao Ago_
Ahiii, per il tuo caso complesso non saprei come aiutarti.

Insomma tu hai 4 tabelle quindi dovresti avere 4 DB read uno per ogni tabella e creare per ogni DB un MODEL (array dei dati in memoria)

quindi ogni dropdown fa riferimento ad un MODEL da dove preleva il campo desiderato,

logicamente è così?

quando risolvi fammi sapere
« Ultima modifica: 25 Nov 2016, 17:42:31 da vitofan2joomla »

Offline Ago_

  • Appassionato
  • ***
  • Post: 785
  • Sesso: Maschio
    • Mostra profilo
Re:[RISOLTO]dinamic dropdown non salva il campo nel database
« Risposta #6 il: 28 Nov 2016, 10:40:54 »
ciao Ago_
Ahiii, per il tuo caso complesso non saprei come aiutarti.

Insomma tu hai 4 tabelle quindi dovresti avere 4 DB read uno per ogni tabella e creare per ogni DB un MODEL (array dei dati in memoria)

quindi ogni dropdown fa riferimento ad un MODEL da dove preleva il campo desiderato,

logicamente è così?

quando risolvi fammi sapere

Si si, 4 dbread con diversi model ID. funziona tutto bene, tranne questa piccola confusione al momento del salvataggio in DB. speriamo qualcuno riesca ad aiutarmi.

Offline Ago_

  • Appassionato
  • ***
  • Post: 785
  • Sesso: Maschio
    • Mostra profilo
Re:[RISOLTO]dinamic dropdown non salva il campo nel database
« Risposta #7 il: 29 Nov 2016, 11:57:45 »
cavolo, non riesco a trovare da nessuna parte un caso simile, nemmeno sul forum del sito ufficiale. :(
« Ultima modifica: 29 Nov 2016, 12:22:11 da Ago_ »

Offline Ago_

  • Appassionato
  • ***
  • Post: 785
  • Sesso: Maschio
    • Mostra profilo
Re:[RISOLTO]dinamic dropdown non salva il campo nel database
« Risposta #8 il: 29 Nov 2016, 15:53:40 »
risolto

semplice custom code prima del DBsave

Codice: [Seleziona]
    <?php
    $db 
= \JFactory::getDBO();
    
$query "
        SELECT `col_name`
            FROM `#__table_name`
            WHERE `id` = '
{$form->data['input_name']}' ;
    "
;
    
$db->setQuery($query);
    
$form->data['some_name'] = $db->loadResult();
    
?>


Offline vitofan2joomla

  • Nuovo arrivato
  • *
  • Post: 21
    • Mostra profilo
Re:[RISOLTO]dinamic dropdown non salva il campo nel database
« Risposta #9 il: 29 Nov 2016, 19:46:28 »
Bravoooo,
ti dispiacerebbe commentarmi un pò a parole logiche cosa fa questo codice PHP?

io capisco questo:
fai una query sulla campo Col_name dove id è uguale al valore esistente nel form field   'input_name'?? 

poi equalizzi il form field al valore del risultato della query???


grazie

Offline Ago_

  • Appassionato
  • ***
  • Post: 785
  • Sesso: Maschio
    • Mostra profilo
Re:[RISOLTO]dinamic dropdown non salva il campo nel database
« Risposta #10 il: 30 Nov 2016, 10:23:40 »
Bravoooo,
ti dispiacerebbe commentarmi un pò a parole logiche cosa fa questo codice PHP?

io capisco questo:
fai una query sulla campo Col_name dove id è uguale al valore esistente nel form field   'input_name'?? 

poi equalizzi il form field al valore del risultato della query???

grazie

non essendo un programmatore te lo spiegherò spero in maniera semplice

trova il valore sul campo (col_name) x della tabella y (attento, se non ha il suffisso di joomla rimuovi #) dove filtri attraverso la colonna id (che sia uguale al dropdown z)
adesso che hai il valore corretto prendilo e salvalo nel campo a (some_name) del db impostato in DB save


Offline vitofan2joomla

  • Nuovo arrivato
  • *
  • Post: 21
    • Mostra profilo
Re:[RISOLTO]dinamic dropdown non salva il campo nel database
« Risposta #11 il: 30 Nov 2016, 16:45:34 »
ciaoo
tu dici:
adesso che hai il valore corretto prendilo e salvalo nel campo a (some_name) del db impostato in DB save
$form->data['some_name'] = $db->loadResult()
io capisco che al campo del form viene assegnato il valore della ricerca sull'id. Quindi poi questo campo del form è quello che viene salvato nel DB save giusto??

credo di aver capito.

Senti se ti interessa (o a chi altri interessasse):

ho trovato un sistema di fare un form in anonimato entrando in joomla come utente registrato e permettere all'utente registrato di fare una sola volta il form!!!
si possono fare grandi cose con Chronoforms...eheheheh

Offline Ago_

  • Appassionato
  • ***
  • Post: 785
  • Sesso: Maschio
    • Mostra profilo
Re:[RISOLTO]dinamic dropdown non salva il campo nel database
« Risposta #12 il: 30 Nov 2016, 17:26:48 »
ciaoo
tu dici:
adesso che hai il valore corretto prendilo e salvalo nel campo a (some_name) del db impostato in DB save
$form->data['some_name'] = $db->loadResult()
io capisco che al campo del form viene assegnato il valore della ricerca sull'id. Quindi poi questo campo del form è quello che viene salvato nel DB save giusto??

credo di aver capito.

Senti se ti interessa (o a chi altri interessasse):

ho trovato un sistema di fare un form in anonimato entrando in joomla come utente registrato e permettere all'utente registrato di fare una sola volta il form!!!
si possono fare grandi cose con Chronoforms...eheheheh

esatto, capito perfettamente.
al momento non mi serve una funzione del genere, magari in futuro...
è un sistema molto potente, veramente versatile e basta saper smanettare con php e mysql puoi fare ciò che vuoi...

Offline vitofan2joomla

  • Nuovo arrivato
  • *
  • Post: 21
    • Mostra profilo
Re:[RISOLTO]dinamic dropdown non salva il campo nel database
« Risposta #13 il: 30 Nov 2016, 17:39:03 »
già che non è poco.
Cmq io ho messo la soluzione nel mio post a beneficio di coloro che avessero questa necessità. ciao

 

Torna su