[Résolu] Remplir dynamiquement un champ CCK

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.

Bonjour,

je souhaite, grâce à CCK, creer un nouveau champ pour un type de contenu. Ce champ contiendrait des villes stockées dans une base de données.
Est-ce qu'il est possible de renseigner dynamiquement une liste d'options à partir des données de la base de données ?

Lors de la creation du champs, il y a "Allowed values list" suivie d'un textarea pour definir un code PHP. Est-ce dans ce textarea on peut faire appel a une fonction qui retourne un tableau ? Et quelle serait la syntaxe de ce tableau ?

Merci de votre aide...

Version de Drupal : 

En gros voilà ce que j'aimerais de façon concrete:

3 liste de choix: Arrondissements, cantons, villages.
Les valeurs de ces 3 choix sont stockées dans une base de donnée.

L'utilisateur arrive sur la page, choisit un arrondissement (le contenu de la liste de choix a été créé dynamiquement en fonction du contenu de la base de données) puis selon ce choix, la liste des cantons se met à jour automatiquement, toujours en consultant la base de données, et de mm pour les villes...
Commment peut-on avoir ça sous Drupal ?

Merci pour vos réponses

Salut Phibo,

alors déjà, le schéma du tableau php des options est le suivant :

<?php
$options
= array(
 
'valeur stockées en bdd' => "valeur affichée à l'écran",
 
'valeur stockées en bdd' => "valeur affichée à l'écran",
 
'valeur stockées en bdd' => "valeur affichée à l'écran",
 
'valeur stockées en bdd' => "valeur affichée à l'écran",
 
'valeur stockées en bdd' => "valeur affichée à l'écran",
  (...)
);
?>

Mais pour ton utilisation, je te conseillerai d'utiliser la taxonomy, tu fais un vocabulaire à hiérarchie multiple :

Arrondissement 1
- Canton 1
-- village 1
-- village 2
- Canton 2
-- village 3
-- village 4
Arrondissement 2
- Canton 1
-- village 1
-- village 2
- Canton 2
-- village 3
-- village 4

Utilise ensuite le module activeselect et c'est tout bon je pense.

Il fût un temps où j'avais le même problème que toi, j'utilisais uniquement Drupal 6, et c'est vrai qu'il manque beaucoup beaucoup de modules par rapport à la v5. Depuis je n'utilise que la v5...en attendant que les modules passent à la v6...

Pour ton problème, peut-être que webastien a une solution ? :-p

Oui phibo : le grand problème du choix entre la D5 et la D6...

J'ai opté pour la D6 parce que ça fait plus de 6 mois qu'elle est sortie et qu'il y a quand même pas mal de modules qui ont été mis à jour. Je compte sur la communauté et je croise les doigts chaque jour pour que les modules manquants arrivent avant ma dead line. A défaut je coderai avec le risque de perdre beaucoup de temps puisque je commence tout juste avec Drupal...