У меня была такая же ошибка в динамически создаваемой таблице. В зависимости от ввода отображались некоторые строки или нет. Как это:
Не вызывает ошибок:
<table>
<tr>
<td> cell 1 in row 1 </td>
<td> cell 2 in row 1 </td>
</tr>
<tr>
<td colspan=2> one cell in row 2 </td>
</tr>
</table>
Не вызывает ошибок:
<table>
<tr>
<td> cell 1 in row 1 </td>
<td> cell 2 in row 1 </td>
</tr>
</table>
Вызывает ошибку:
<table>
<tr>
<td colspan=2> one cell in what is now the only row </td>
</tr>
</table>
Как только я запрограммировал страницу для удаления colspan из последнего примера, когда первая строка не отображалась, ошибка исчезла. Примерно так:
<?php if (first row with two cells is displayed) echo 'colspan=2'; ?>
Я считаю это логичным. colspan = 2 с единственными ячейками - это все равно, что сказать кому-то, кто посещает меня, повернуть направо на улицу без перекрестков, полагая, что они будут идти прямо. Они не будут. Вместо этого они будут зависать в поисках чего-то, чего там нет. Может быть, не совсем точная аналогия, но вы можете представить себе глупый браузер, создающий ошибки отображения при поиске того, что вы говорите, что оно есть, но его нет. От браузеров не следует «думать», что, возможно, вы имели в виду свой код не так, как вы его написали.