Autore Topic: Tipo campo personalizzato  (Letto 107 volte)

Offline saprile

  • Esploratore
  • **
  • Post: 65
    • Mostra profilo
Tipo campo personalizzato
« il: 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

Offline saprile

  • Esploratore
  • **
  • Post: 65
    • Mostra profilo
Re:Tipo campo personalizzato
« Risposta #1 il: 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;
      
   }
   
}

 

Torna su