Submitted by mouize on
Bonjour,
J'ai un simple formulaire, avec une select qui va faire apparaitre une nouveau champ select.
Le soucis est qu'en utilisant #ajax, une fois que je soumet le formulaire, il ne prend pas du tout en compte ce nouvel element dans mon $form_state['values']
function my_form($form, &$form_state)
{
$form['project'] = array(
'#type' => 'select',
'#title' => t('Project'),
'#default_value' => 'all',
'#options' => $list_project,
'#description' => t('Select the features to launch'),
'#ajax' => array(
'callback' => '_my_ajax',
'wrapper' => 'features_ajax',
'method' => 'replace',
'effect' => 'slide',
'event' => 'change'
),
'#suffix' => "<div id ='features_ajax'></div>",
);
...
}
function _my_ajax($form, $form_state)
{
$form['features'] = array(
'#type' => 'select',
'#title' => t('Features test'),
'#default_value' => 'all',
'#options' => $list_features,
'#description' => t('Select the features to launch'),
'#multiple' => true,
'#size' => 10,
'#prefix' => "<div id ='features_ajax'>",
'#suffix' => "</div>",
);
return $form['features'];
}
ça pourra t’aider
Permalien Soumis par selinav le 23 Septembre, 2011 - 17:14
ça pourra t'aider http://planete.drupalfr.org/node/355
Yep, Merci pour le lien, bien
Permalien Soumis par mouize le 23 Septembre, 2011 - 17:28
Yep,
Merci pour le lien, bien qu'un peu tard, j'ai trouvé la réponse hier :p
Le point important :
// Sauvegarde du formulaire dans le cache
form_set_cache($form_build_id, $form, $form_state);
// Reconstruction du formulaire
$form = form_builder($_POST['form_id'], $form, $form_state);