使用PHP动态生成表

Roc*_*ket 1 php formatting html-table

我知道之前已经问过这个问题我使用以下代码了解它:

<?php
$maxcols = 8;  $i = 0;
echo "<table id='table1'><tr>";

foreach ($id as $k => $v) {
    echo "<td id='0'><div id='{$k}' class='drag t1'>{$v}</div></td>"; $i++;
    if ($i == $maxcols) { $i = 0; echo "</tr><tr>"; }
} $i++;


while ($i <= $maxcols) {
    $i++; echo "<td></td>";
}

echo "</tr></table>";
?>
Run Code Online (Sandbox Code Playgroud)

这会产生一个如下所示的表:

在此输入图像描述

我想为此添加标题,因此最终结果如下所示:

在此输入图像描述

我想动态地这样做,所以如果我创建一个只有5列宽的表,我会得到第一个标题行ID01 - ID05和第二个标题行ID06 - ID10

我想限制标头ID值不超过$ maxid任何额外的标头字段应该是空白的,如下所示:如果$ maxid = 12; 然后 :

在此输入图像描述

我需要标题行如下所示,而不是使用 <TH>

<td class="mark">
Run Code Online (Sandbox Code Playgroud)

我正在使用一些javascript来允许移动单元格数据.

该类用于设置标题上的格式,并阻止项目被拖入字段.

任何人都可以指出我如何做到这一点的正确方向.

kee*_*ing 6

这应该对你有帮助.

$maxcols = 8; 
$maxid = 12;
$startid = 1;

echo "<table id='table1'>\n";
for ($i = 1;$i<=ceil($maxid/$maxcols);$i++) {

    echo "<tr>\n";
    for ($j=1;$j<=$maxcols;$j++)
        if ($startid <= $maxid)
            echo "  <td class='mark'>ID".$startid++."</td>\n";
        else 
            echo "  <td> </td>\n";

    echo "</tr>\n<tr>\n";
    for ($j=1;$j<=$maxcols;$j++)
        echo "<td>Content</td>\n";

    echo "</tr>\n";
}

echo "</table>\n";
Run Code Online (Sandbox Code Playgroud)

生成

<table id='table1'>
    <tr>
        <td class='mark'>ID1</td>
        <td class='mark'>ID2</td>
        <td class='mark'>ID3</td>
        <td class='mark'>ID4</td>
        <td class='mark'>ID5</td>
        <td class='mark'>ID6</td>
        <td class='mark'>ID7</td>
        <td class='mark'>ID8</td>
    </tr>
    <tr>
        <td>Content</td>
        <td>Content</td>
        <td>Content</td>
        <td>Content</td>
        <td>Content</td>
        <td>Content</td>
        <td>Content</td>
        <td>Content</td>
    </tr>
    <tr>
        <td class='mark'>ID9</td>
        <td class='mark'>ID10</td>
        <td class='mark'>ID11</td>
        <td class='mark'>ID12</td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
    </tr>
    <tr>
        <td>Content</td>
        <td>Content</td>
        <td>Content</td>
        <td>Content</td>
        <td>Content</td>
        <td>Content</td>
        <td>Content</td>
        <td>Content</td>
    </tr>
</table>
Run Code Online (Sandbox Code Playgroud)