Submitted by Laprud on
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 ?