Joomla.it Forum
Non solo Joomla... => Sviluppo => : saprile 28 Sep 2015, 10:49:37
-
Buongiorno, ho la necessità di creare un nuovo "type field" per un mio modulo in joomla 3, ho seguito le indicazioni sulla documentazione al link: https://docs.joomla.org/Creating_a_custom_form_field_type (https://docs.joomla.org/Creating_a_custom_form_field_type), il nuovo tipo di campo funziona e il valore viene salvato correttamente (richiamato poi da $params->get('nome_campo_personalizzato')), ma essendo un menù a tendina, nelle opzioni del modulo non rimane selezionata la voce scelta. Quali parametri devo confrontare, nella select, per impostare l'opzione 'selected="selected"'?
publicfunction getInput(){return'<select id="'.$this->id.'" name="'.$this->name.'">'.'<option value="1" >New York</option>'.'<option value="2" >Chicago</option>'.'<option value="3" >San Francisco</option>'.'</select>';}
Grazie
-
https://www.ostraining.com/blog/how-tos/development/how-to-create-select-lists-in-joomla/
https://api.joomla.org/cms-3/classes/JHtmlSelect.html
-
c'è qualcosa che non va nel tuo discorso... parli di un menù a tendina, quindi devi derivare la classe da JFormFieldList e non da JFormField, dopo di che ti consiglio di estendere il metodo getOptions() e lasciare la gestione di getInput() a joomla
ciao
-
Ciao Steganoga, grazie per il link segnalato, ma ho provato anche quel codice e il problema è esattamente lo stesso. Il valore inviato e memorizzato è giusto, quindi richiamando il valore con $params->get('nome_campo') è giusto. Ma se riapro le opzioni del modulo, il menù a tendina mi indica sempre la prima voce e non quella poco prima selezionata.
-
Ciao mmleoni, ma le indicazioni le ho prese dalla documentazione ufficiale, https://docs.joomla.org/Creating_a_custom_form_field_type, in questo link si fa esplicito riferimento a JFormField e non a JFormFieldList.
-
dalla pagina linkata:
"Especially if your form field type is a list, please subclass JFormFieldList. You only have to override getOptions() method to return the options to be shown"
la select è una list, quindi stai usando la classe sbagliata... fai come ti ho detto io che funziona ;)
ciao
-
Effettivamente si, ora funziona correttamente, grazie mmleoni!!!
-
il [risolto] !!!
(nel titolo del post di apertura)
ciao