Formulaire riche

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,

J'ai développé un module spécifique qui effectue une requête vers la base de données pour récupérer des objets, et qui affiche ensuite ces objets dans un formulaire de type radios boutons.

Actuellement, je n'ai aucun problème, le module et le formulaire fonctionne parfaitement.
Je récupère simplement l'ID des objets dans un array que je passe en paramètre au formulaire     '#options' => $liste, et tout se passe bien.

Maintenant, je souhaiterai afficher davantage d'informations concernant mes objets.
Pour le moment, l'affichage du formulaire est de cette forme :
o ID1
o ID2
o ID3

Je souhaiterai dans ma requête récupérer plusieurs informations à propos de mes objets pour pouvoir afficher quelque chose comme ça :

o ID1 NOM1 TYPE1
o ID2 NOM2 TYPE2
o ID3 NOM3 TYPE3

J'ai pensé à créer un array d'array pour récupérer ces données.
Chaque entrée de mon array $options contient un objet qui est un array de toutes les informations que je souhaite.

Malheureusement, le formulaire Drupal ne veut pas l'afficher...

Auriez vous des solutions ?

Par avance, merci :)

Forum : 
Version de Drupal : 
Tags : 

Si vous savez récupérer les données a afficher avec votre requête, alors c'est juste une problème au niveau de la structure de votre form. Vous devez avoir:

$form['radios'] = array(
  ...
  '#options' => array(
    0 => 'ID1 NOM1 TYPE1', /* a remplacer par vos valeurs */
    1 => 'ID2 NOM2 TYPE2',
    2 => 'ID3 NOM3 TYPE3',
  ),
  ...
)

Hum merci beaucoup, je me rends compte que j'étais parti une direction complètement mauvaise ! Vu comme ça, effectivement c'est assez simple, merci encore. ^^

Malgré tout, cette méthode correspond moyennement à mes besoins.. Peut être pourrez-vous m'en dire un peu plus.

En fait, j'exécute une requête, j'affiche les résultats dans un formulaire, et je garde en session la valeur choisie par l'utilisateur.
Par contre, je souhaiterai pouvoir afficher le formulaire sous la forme d'un tableau.

Idéalement, je voudrais obtenir ça : http://docs.oracle.com/cd/B28359_01/appdev.111/b28845/img/chap5_test_emp...

Moi, tout ce que j'obtiens pour l'instant, c'est un bouton radio suivi de mes valeurs...
On m'a conseillé Views et Webform mais je ne suis parvenu à aucun résultat avec ces modules (et donc j'ai développé mon propre module).

Mais sauriez-vous comment je peux obtenir un affichage proche de celui qu'on voit sur le lien ??!

Merci, effectivement ça semble correspondre à ce que je souhaite faire.
Encore une fois, Drupal me surprend au moment où je perds espoir... Ça donne envie d'approfondir au maximum la machine !

Toutefois, sur theme_table et theme_tableselect, j'ai un peu de mal à saisir le concept, n'étant que moyennement familier avec l'anglais...

Il s'agit de méthode à appliquer lors de la création d'un formulaire ou bien il est nécessaire d'implémenter une fonction ?

Je chercherai plus de documentation durant le weekend, mais si jamais vous avez quelques exemples concrets d'utilisation, je ne cracherai pas dessus loin de la.. !

Merci beaucoup pour votre aide en tout cas. :)

Je n'ai malheureusement pas d'exemples concrets a vous donner, mais commencez par copier coller l'exemple de la page, vous obtiendrez un résultat avec lequel vous pourrez expérimenter avec des valeurs en dur, et puis ensuite les substituer avec des variables que vous aurez préalablement récupérées. Si vous êtes suffisamment familiarise avec la form API de Drupal, vous devriez vous en sortir assez facilement je pense.

Finalement, en cherchant de la documentation sur theme_tableselect, je suis tombé sur ce tutoriel : http://translate.googleusercontent.com/translate_c?hl=fr&prev=/search%3F...

J'ai donc simplement modifié les paramètres de mon formulaires comme ceci :

<?php
'#type' => 'tableselect',
'#header' => $header,
'#options' => $opt,
'#multiple' => FALSE,
?>

Ainsi, j'obtiens parfaitement ce que je souhaitais.
L'affichage de mes données sous la forme d'un tableau avec une colonne de radio bouton permettant de choisir la ligne.
Le tout étant un formulaire la valeur de retour est renvoyée dans $form_state[values];

Encore une fois, Drupal me surprend agréablement après m'avoir bien énervé !!
Il est clair que Drupal a des capacités gigantesques, mais bon sang l'API est vraiment affreuse et à moins de le connaitre sur le bout des doigts, la développement n'est vraiment pas facile.. !

Heureusement qu'il y a la communauté, merci encore. :)