Submitted by cel57 on
Bonjour,
Je suis en train de créer un formulaire dans lequel lorsque j'ajoute des personnes (grâce au module webform multiple), je dois créer autant de champ de type file.
Pour l'instant, j'ai fait un formulaire en 2 pages. Su la première, j'ajoute mes personnes et sur la 2ème page je récupère le nombre de personne pour créer autant de champ file. J'ai réussi à créer ses champs en faisant :
$form['test'.$i]=array(
'#type' => 'file',
'#title' => t('Visas des directeurs des laboratoires impliqués'),
'#size' => 60,
'#maxlength' => 128
);
Mais, le problème c'est que le champ n'est pas le même que celui de webform. Il n'y a pas le bouton transférer.
De plus, en faisant celà, cela n'enregistre pas dans la base à la soumission.
J'ai tenté une autre solution en faisant celà:
$components[] = array(
'name' => 'test'.$i,
'form_key' => 'test'.$i,
'type' => 'file',
'mandatory' => 1,
'weight' => 99,
'pid' => 0,
);
$node = node_load($nid);
foreach($components as $component) {
$component['nid'] = $nid; // The node id of your webform
$node->webform['components'][] = $component;
webform_component_insert($component);
Les champs sont bien créé mais ils ne s'affichent pas sur la page. Il faut que je vide le cache et si je reviens en arrière sur mon formulaire ça recrée les champs dans la base (j'imagine qu'il faudra que je teste l'existence).
Là, je suis perdue je ne sais pas comment faire pour faire bien.
Si qqn a compris et peut m'aider, cela serait super sympa.
Merci d'avance.