Modifier le contenu d'un formulaire

Catégories:

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 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;
}

Syndiquer le contenu