2009-08-10 8 views
0

Je souhaite afficher une table dans un formulaire Zend. Pour cela, j'utilisé des lignes de soufflageAffichage Table créée par un tableau en utilisant une partie

<?php 
    echo $this->form. $this->partial("staff/medicalTable.phtml"); 
?> 

dans application/vues/scripts/médicaux/index.phtml Il fonctionne très bien. Mais maintenant je veux afficher une table dans un formulaire Zend en utilisant un tableau. Pour cela, je crée un tableau comme:

<?php 

/** 
* Array contain Table Column Name and Column records. 
*/ 
    $table = array("columnName" => array("Date","Type","Comment"), 
      "columnVariables" => array("1/1/09","Hepatites A","Ok")); 
?> 

Et maintenant comment pourrais-je afficher ma table tel que défini dans le tableau ci-dessus, pour que je puisse obtenir le même résultat qu'avant quand il n'y avait pas de tableau pour le tableau.

Je teste aussi http://framework.zend.com/manual/en/zend.view.helpers.html#zend.view.helpers.initial.partial mais ne parviennent à obtenir leurs points

BONJOUR; -> j'ai des progrès. mais c'est seulement pour une table, le code est:

forme. $ this-> partial ("students/lunchinfoTable.phtml", array ("columnName1" => "Date d'inscription", "columnName2" => "Date d'annulation", "columnName3" => "Comment")); ? >

et dans mon dossier phtml i écrit:


évasion ($ this-> columnName1)> évasion ($ this-> columnName2);> ? échapper ($ this-> columnName3);?>

Mais je dois l'appliquer pour beaucoup de tables que je pouvais. ie: je veux créer du code générique pour que je ne fasse que passer le nom des champs Table et leurs valeurs pour ces champs, puis afficher la table avec les champs passés.

Répondre

0

Essayez ceci:

<table> 
    <thead> 
     <tr> 
      <? foreach(array_keys($this->data[0]) as $column) { ?> 
      <th><?=$this->escape($column);?></th> 
      <? } ?> 
     </tr> 
    </thead> 
    <tbody> 
     <? foreach($this->data as $row) { ?> 
     <tr> 
      <? foreach($row as $value) { ?> 
      <td><?=$this->escape($value);?></td> 
      <? } ?> 
     </tr> 
     <? } ?> 
    </tbody> 
</table> 

Je suppose que pour toutes les lignes les clés du tableau sont les mêmes. Si ce n'est pas toujours le cas, vous pouvez passer dans un tableau de colonnes et ne sortir que les colonnes basées sur ce tableau.

+0

Je l'ai fait, mais un grand merci à tous –

0
<table class="DataTable tablesorter" width="100%" valign="top" align="center" border="0" cellpadding="2" cellspacing="2" width="100%"> 
    <thead> 
     <tr> 
      <th width="1%"><input type="checkbox" name="mcb"></th> 
       <?php foreach ($this->dataStructure as $heading) { ?> 
        <th nowrap="yes"><?php echo $this->escape($heading['columnName']); ?></th> 
       <?php }?> 
     </tr> 
    </thead> 
    <tbody> 
     <?php foreach ($this->dataValues as $value) { ?> 
      <tr>            
       <td><input type="checkbox" name="mcb"></td> 
        <?php foreach ($this->dataStructure as $heading) { ?> 
        <td> 
         <?php 
          foreach ($heading['columnVariables'] as $var) { 
           echo $value[$var].'&nbsp;'; 
          } 
         ?> 
        </td>           
        <?php }?> 
      </tr> 
     <?php }?>          
    </tbody> 
</table> 
Questions connexes