Submitted by awan on
Salut les amis,
Au chargement de mon formulaire, crée avec les Forms API, quelques checkboxes doivent être sélectionnées par défaut.
J'ai des checkboxes suivants
Français
Anglais
Allemand
Italien
Si j'utilise la propriété #default_value de façon suivante
'#default_value' => variable_get('langue', array('Français','Italien')),
ça fonctionne bien.
Mais si je met une variable, qui contient les valeurs "'Français', 'Italien'", ça ne fonctionne pas.
Voila mon code.
$rqt_langue="Select langue_desc from pwl_langue";
$res_langue=mysql_query($rqt_langue);
$row_langue=mysql_fetch_assoc($res_langue);
$langues="'".$row_langue['langue_desc']."'";
while ($row_langue=mysql_fetch_assoc($res_langue)){
$langues=$langues .",'".$row_langue['langue_desc']."'";
}
$form['langue']=array(
'#type'=>'checkboxes',
'#default_value' => variable_get('langue', array($langues)),
'#options' => array(
'Français' => t('Français'),
'Anglais' => t('Anglais'),
'Allemand' => t('Allemand'),
'Italien' => t('Italien'),
),
);
Est-ce qqun à un idée, comment faire ça ??
Je vous remercie à l'avance.
Salut, Il y a une erreur de
Permalien Soumis par drupalfrance le 10 Mai, 2007 - 16:12
Salut,
Il y a une erreur de logique dans ton code : ta variable $langues contient une chaîne de caractères composée de plusieurs langues séparées par des virgules, mais ça reste une et une seule chaîne (les virgules sont comprises dedans). Autrement dit, ton array un peu plus bas ne contient qu'une seule valeur (cette chaîne de caractères pleine de virgules !).
C'est au moment où tu récupères tes langues que tu dois construire le array, par exemple :
Ensuite, plus bas, tu te contentes de passer la variable $langues comme valeur par défaut (il n'est plus nécessaire d'écrire array(...) ) :
Enfin, c'est pas une super idée d'utiliser directement mysql_fetch_assoc(), ça introduit une dépendance à mysql. Drupal a des fonctions d'abstraction pour la base de données comme db_fetch_array() ou db_fetch_object().
Merci bien Vincent, ça
Permalien Soumis par awan le 10 Mai, 2007 - 16:42
Merci bien Vincent,
ça marche bien maintenant.