Submitted by flebas on
Bonjour,
Je cherche comment modifier le contenu d'un formulaire d'enregistrement de node pendant la saisie :
Le formulaire contient (entre autres) :
- une liste de type 'select'
- un champ 'textarea'
- un bouton 'button'
Quand l'utilisateur clique sur le bouton, je voudrais que le contenu du textarea soit mis à jour en fonction du la sélection de la liste select.
A priori la seule façon de procéder est de faire le traitement au niveau du hook_nodeapi, en traitement de 'validate'. La fonction est appelée mais impossible de mettre le champ à jour, même en utilisant la fonction form_set_value.
Le code est a priori correct, mais le formulaire ne se met pas à jour. Quelqu'un a-t-il une piste ?
On m'a donné la solution
Permalien Soumis par flebas le 11 Janvier, 2008 - 19:04
On m'a donné la solution sur Drupal.org, je la poste ici car ça peut servir.
Ajouter dans la fonction hook_form_alter du module :
$form['#after_build'][] = 'mymodule_button_handler';
Ajouter la fonction de gestion du bouton :
function mymodule_button_handler($form, $form_values) {
if ($_POST['op'] == 'my button') {
$form['my_textarea']['#value'] = my_function($form_values['my_select']);
}
return $form;
}