Ho provato seguendo due tutoria ad usare ahah per creare due select. La seconda dovrebbe riempirsi a seconda dei risultati che ho ottenuto dalla prima. In tutti e due casi ad una prima vista sembrerebbe funzionare ma se genero un errore ad esempio perchè un campo è required quando modifico la prima select la seconda non si modifica più.
Vi posto uno dei due codici vi sarò grato per l'eternità se mi sapete dare una soluzione:)
<?php
function form_alimenti_crea()
{ ....
//recupero i tipi possibili e li metto nell'array option
$form['tipo_it'] = array(
'#type' => 'select',
'#title' => t('Scegli il tipo'),
'#options' =>$option ,
'#default_value' => $usage_default_value,
'#ahah' => array(
'path' =>'sceglisottotipo/haha' ,
'wrapper' => 'sottotipo',
'method' => 'replace',
),
);
$form['sottotipo_it'] = array(
'#type' => 'select',
'#title' => t('Seleziona sottotipo'),
'#description' => t('Second selection'),
'#options' =>array('0'=>'inserisci un sottotipo') ,
'#prefix' => '',
'#suffix' => '',
);
//////////////////////////////////////////////////////////////////////
......
//Creo un array $option3 per le check box che sono richieste
$form['tipodipasto'] = array
(
'#type' => 'checkboxes',
'#title' => 'scegli un tipo di pasto',
'#options' =>$option3,
'#required' => TRUE,
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('invia'),
);
return $form;
}
function form_alimenti_crea_submit()
{drupal_set_message("sono nel submit");
}
function sceglisottotipo_js()
{// Recupera l'id del form
$form_build_id = $_POST['form_build_id'];
// imposta il form come non postato
$form_state = array('submitted' => FALSE);
// Carica il form dalla cache