Message d'avertissement

The subscription service is currently unavailable. Please try again later.

API FORM et Ajax

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

salut à tous,

j'ai petit soucis avec l'api form
voilà, j'ai fait un formulaire dans un module.
certains champs du formulaire vont chercher des données externe (c'est pour ça que je fais un formulaire dans un module et non un webform)
sur un champ select, je lui dis qu'il y a une action ajax pour modifier les données d'un autre champ select
ce dernier est configuré multiple, mais lors du retour ajax, il n'est plus multiple et de plus n'a plus d'attribut name.

voici le code des champs select:

$form["famille"]["enfant"]["classe"]=array(
   "#type"=>"select",
   "#options" => array("cp","ce1","ce2"),
   "#title" => "CLASSE",
  "#ajax" => array(
      'callback' => 'ajax_get_matiere',
     'wrapper' => 'div-matiere',
     'method'=>'replace',
  )
)
$form['famille']['enfant']['matiere']=array(
"#type"=>"select",
"#options"=>array("choisir ..."),
"#multiple"=>TRUE,
"#prefix"=>"<div id='div-matiere'>",
"#suffix"=>"</div>"
)
...
return $form;

puis le code callback,

function ajax_get_matiere($form,&$fom_state) {
$matiere=array();
db_set_active("db");
// recuperation des données
// boucle remplissant $matiere

$form["famille"]["enfant"]["matiere"]=array(
"#type"=>"select",
"#options"=>$matiere,
"#title"=>"matiere",
"#multiple"=>TRUE,
"#prefix"=>"<div id='div-matiere'>",
"#suffix"=>"</div>"
)

return $form["famille"]["enfant"]["matiere"];
}

L'appel ajax fonctionne, mais la liste déroulante que j'obtiens n'est plus multiple.

question : comment faire ?

Forum : 
Version de Drupal :