这让我发疯了。该表正确呈现,因为列标题都是正确的,第一列是正确的,但是第二列被跳过,应该存在的数据在第3列,第3列在第3列等。当我看到页面源一切看起来都正确。但是,当我在Chrome的开发者工具中查看“元素”时,会有额外的内容。这是代码:
echo '<table id="bordered">';
echo '<thead>';
echo '<tr>';
echo '<th></th>';
foreach($products as $product){
/*@var $product Products */
echo '<th>',$product->getProductName(),'</th>';
}
echo '</tr>';
echo '</thead>';
echo '<tbody>';
foreach($customers as $cust){
echo '<tr>';
echo '<td>',$cust->getCustomerName(),'<td>';
$prod = ForecastDisplay_db::getProductsQuantityForCustomer($cust, $products);
$i=0;
foreach($prod as $quantity){
$i++;
if($i == 1){
echo '<td>First Run</td>';
}else{
echo '<td>', $quantity['id'],' ',$quantity['quantity'],'</td>';
}
}
echo '</tr>';
}
echo '</tbody>';
echo '</table>';
我添加了'First Run'来确保数组的第一个位置没有空,但没有。任何人都知道为什么要跳过该列?
答案 0 :(得分:3)
您没有正确关闭td
代码。
echo '<td>',$cust->getCustomerName(),'<td>';
应该是
echo '<td>',$cust->getCustomerName(),'</td>';