2010-11-27 63 views
0

使用PHP(如果它需要,jquery):如何用foreach循環填充佔位符框?

我有這個頁面有30個框。它永遠不會更多或更少。

在這些30盒,其中的一些將與「框特定」的數據來填充。

我怎麼能說:

如果有20條記錄上的foreach循環trought,那麼,20盒將包含數據,其餘的將留在佔位符。 如果在foreach上有10條記錄,那麼20個盒子將留在placeholdes中。

怎麼能像這樣能實現嗎? 任何人都可以爲我提供一個很好的例子嗎?

非常感謝, MEM

+0

謝謝大家。 :)我會看看你的解決方案,看看什麼最適合這裏。 K.問候。 – MEM 2010-11-28 00:02:43

回答

1

假設$data是您的數據的數字鍵的排列:

<?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

裝滿數據的比特數組你必須加30個佔位符,以數組的第30種元素,以及遍歷這些。

1

你有沒有每個盒子的名字?假設有在10或20條記錄這我假設在一個數組一些名稱/ ID ...

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(); 
     } 

} 

這裏假設你有一些類型框對象的它知道如何輸出本身作爲HTML ,並設置你想要的任何值來自記錄。

1

用你所有的數據組成一個數組。然後運行for-loop(0..30)來構建您的盒子。對於循環中的每個項目,如果您的box-data數組包含元素,則輸出特定數據,否則輸出佔位符數據。事情是這樣的......

<?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>"; 
    } 
    }