Afficher de données au travers d'un tableau ==> Affichage du tableau

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 suis entrain de concevoir un module permettant d'afficher des données contenues dans des fichiers xml. J'ai déjà pas mal avancé grâce à d'autres sujets que j'ai ouvert dans ce forum...

Malheureusement, je coince sur une bêtise... Comme dit ci-dessus, je récupère des infos dans un fichier xml et ensuite, je veux les afficher dans un tableau...

J'arrive à créer le tableau mais malheureusement, j'ai beaucoup plus de mal à l'afficher correctement... En faite, je n'arrive pas à l'insérer dans mon formulaire. Dès que j'essaye, j'obtiens une page vide synonyme d'erreur :(.
Cependant, mon tableau a l'air correctement construit puisque lorsque j'utilise la fonction "print", il s'affiche (avec les bonnes valeurs) tout au-dessus de la page...

Voici le code qui ne crée pas d'erreur:

<?php
function jefeh_xml_display_message_form(&$form_state, $output) {
 
$raw = array_keys($output);
   
  
$column = array_keys($output[$raw[0]][1]);
 
$header = array();
 foreach(
$column as $title) {
      
drupal_set_message($title, 'error');
    
$header[] = $title;
    }
 
  
$rows = array();
  
$content = array_count_values($output[$raw[0]][1]);
    foreach(
$output[$raw[0]] as $datas) {
         
$row = array();
        foreach(
$datas as $data) {
        
$row[] = array('#type' => 'textarea', 'data' => $data);
        }
     
$rows[] = $row;
   }
 
   
$form['button'] = array(
       
'#type' => 'submit',
       
'#value' => t('Valid'),
    );

    print
theme('table', $header, $rows);
   
    return
$form;
}
?>

Et donc dès qu'à la fin de la fonction je fais ceci:

<?php
$form2
= theme('table', $header, $rows);
$form2 .= drupal_render($form);

return
$form2;
?>

j'ai une erreur...
Voilà, donc j'espère que si vous avez une idée de pourquoi mon tableau n'a pas envie de s'afficher correctement, je suis preneur...

Forum : 
Version de Drupal : 
Tags : 

Essaye de mettre un drupal_render sur ton theme_table.

<?php
$form2
= drupal_render(theme('table', $header, $rows));
$form2 .= drupal_render($form);

return
$form2;
?>

Et si ca marche pas, essaye de rajouter un $attributes dans ton theme_table, j'ai eu ce meme pb et je pouvais pas recuperer mon tableau juste en faisait $table = theme('table', $header, $rows);, par contre en faisant $table = theme('table', $header, $rows, $attributes); ca fonctionnait (meme si $attributes est vide).
J'ai pas creuse plus loin mais y a ptet un truc louche ici ;)

Malheureusement ta technique ne fonctionne pas dans mon cas :'(.
Par contre, je vais ajouter une petite précision. En faite ma fonction "jefeh_xml_display_message_form(&$form_state, $output)" est appelée dans le contexte suivant:

<?php
    $display
= drupal_get_form('jefeh_xml_display_message_form', $output);
    print
drupal_render(theme('page', $display, $attributes));
?>

Je ne sais pas si ça peut vous être utile mais bon comme ça, c'est bien clair ;)