Joomla.it Forum

Componenti per Joomla! => Gestione Form => Topic aperto da: saprile - 23 Nov 2017, 17:09:35

Titolo: Tipo campo personalizzato
Inserito da: saprile - 23 Nov 2017, 17:09:35

Ciao a tutti,
su Joomla 3.6.5, vorrei creare un "field-type" personalizzato sul quale poter scegliere pių menų "drop down" a cascata.
Seguendo la guida presente sulla documentazione ufficiale (https://docs.joomla.org/Creating_a_custom_form_field_type) riesco ad avere il mio tipo-campo. Il problema sussiste quando, oltre a memorizzare sul DB i dati del primo menų a tendina, voglio memorizzare sul DB gli altri menų conseguenti.


Per esempio:
primo menų: elenco delle regioni
secondo menų elenco provincie della regione selezionata
terzo menų: elenco comuni della provincia selezionata


In pratica, il primo valore (regione) lo memorizzo in quanto la select ha l'id "$this->id" e name "$this->name", ma per memorizzare gli altri due valori, ossia "provincia" e "comune", come devo valorizzare il relativo "id" e "name"? Ho previsto due campi di tipo "hidden" nell'xml, con lo stesso name, infatti nel DB il campo viene considerato, ma viene memorizzato vuoto.
Qualcuno saprebbe darmi indicazioni?


Grazie in anticipo
Titolo: Re:Tipo campo personalizzato
Inserito da: saprile - 23 Nov 2017, 17:25:44
Questo č il contenuto del file personalizzato:



jimport('joomla.form.formfield');


// The class name must always be the same as the filename (in camel case)
class JFormFieldPageType extends JFormField {


   //The field class must know its own type through the variable $type.
   protected $type = 'PageType';


   public function getInput() {

      $code = '<select id="'.$this->id.'" name="'.$this->name.'">'.
            '<option value="1" >111</option>'.
            '<option value="2" >222</option>'.
            '<option value="3" >333</option>'.
            '</select>

';
      
      $code .= '<select id="seconda_tendina" name="seconda_tendina">'.
             '<option value="aaa" >AAA</option>'.
             '<option value="bbb" >BBB</option>'.
             '<option value="ccc" >CCC</option>'.
             '</select>

';
      
      $code .= '<select id="terza_tendina" name="terza_tendina">'.
             '<option value="xxx" >XXX</option>'.
             '<option value="yyy" >YYY</option>'.
             '<option value="zzz" >ZZZ</option>'.
             '</select>';
      
      return $code;
      
   }
   
}