使用PHP(如果需要,jquery):
我有30个盒子的这个页面。它永远不会更多或更少。
在这30个盒子上,其中一些将填充“特定于盒子”的数据。
我该怎么说:
如果foreach上有20条记录,那么,20个盒子将包含数据,其余的将保留在占位符中。 如果foreach上有10条记录,那么将有20个盒子留在那个地方。
如何才能实现这样的目标? 这样做可以为我提供一个很好的例子吗?
非常感谢, MEM
答案 0 :(得分:1)
使用您拥有的数据位填充数组,添加30个占位符,获取数组的前30个元素,然后迭代这些元素。
答案 1 :(得分: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();
}
}
假设您有某种类型的box对象知道如何将自己输出为HTML,并设置您希望从记录中得到的任何值。
答案 2 :(得分:1)
制作包含所有数据的数组。然后运行for循环(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>";
}
}
答案 3 :(得分: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;?>