2010-11-27 5 views
0

En utilisant PHP (au besoin, jquery):Comment remplir les cases d'espace réservé avec une boucle foreach?

J'ai cette page avec 30 cases. Ce ne sera jamais plus ou moins.

Sur ces 30 boîtes, certaines d'entre elles seront remplies de données "spécifiques à la boîte".

Comment puis-je dire:

S'il y a 20 enregistrements sur la boucle foreach à trought, puis, 20 boîtes contiendront des données, et le reste restera avec les espaces réservés. S'il y a 10 enregistrements sur la foreach, alors 20 boîtes resteront avec les places.

Comment une telle chose peut-elle être réalisée? Quelqu'un peut-il me donner un bon exemple pour le faire?

Merci beaucoup, MEM

+0

Merci à tous. :) Je vais jeter un oeil à vos solutions et voir ce qui convient le mieux ici. K. Cordialement. – MEM

+1

Merci encore à tous. J'ai trouvé prodigitalson une belle sintaxe sur ce cas, car si, après plusieurs lignes html nous avons} à la fin, nous finissons par nous demander: Qu'est-ce que c'est} la fermeture? Je ne savais pas à propos de cette façon de le faire. Merci encore à tous. Je marquerai toutes les réponses comme utiles. – MEM

Répondre

1

En supposant $data est un tableau numérique à clé de vos données:

<?php for($i = 0; $i < 30; $i++): ?> 

    <?php if(isset($data[$i]): ?> 
    <!-- the html for a box WITH data --> 
    <?php else: ?> 
    <!-- html for an empty placeholder box --> 
    <?php endif; ?> 

<?php endfor;?> 
1

Remplir un tableau avec les bits de données que vous avez, ajoutez 30 caractères génériques, prenez les 30 premiers éléments du tableau, et itérer sur ceux-ci.

1

Avez-vous des noms pour chaque boîte? Si l'on suppose il y a un nom/id dans vos 10 ou 20 dossiers que je pars du principe que sont dans un tableau ...

function OutputBoxes($records, $boxes){ 
     foreach($boxes as $box){ 
       $box->PopulateWithPlaceHolder(); 
     } 

     foreach($records as $record){ 
       $box = GetMatchingBox($record); 
       $box->SetValue($record['valueProperty']); 
     } 

     foreach($boxes as $box){ 
       echo $box->ElementHtml(); 
     } 

} 

En supposant ici que vous avez un certain type d'objet de boîte qui sait comment lui-même comme sortie HTML et définissez la valeur que vous souhaitez obtenir de l'enregistrement.

1

créez un tableau avec toutes vos données. puis lancez une boucle for (0..30) pour construire vos boîtes. Pour chaque élément de votre boucle, si votre tableau de données de boîte contient un élément, affichez des données spécifiques, sinon des données d'espace réservé de sortie. Quelque chose comme ça ...

<?php 
    $box_data = array(
    "data for box 1", 
    "data for box 2", 
    "data for box 3" 
); 
    for($i=0; $i<30; ++$i) { 
    if($i >= count($box_data)) { 
     // output "placeholder box" 
     echo "<div class=\"box placeholder\">Placeholder Box</div>"; 
    } else { 
     // output the box's specific data 
     echo "<div class=\"box non-placeholder\">{$box_data[$i]}</div>"; 
    } 
    } 
Questions connexes