簡體   English   中英

將ID添加到動態創建的表中

[英]Adding ID's to dynamically created table

在另一個Stack Overflow帖子的幫助下,我現在使動態表可以正常工作。 我正在遍歷一個數組並創建多個表。 這很好。

這是我正在使用的代碼:

foreach ($id as $k => $v) {
    $maxcols = $cols[$unit[$k]]; 
    $maxid = $cells[$unit[$k]]; 
    $startid = 1;

// maxcols = 4 // maxid = 8

echo "<table id='table$v'><tr>\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 class='mark'> </td>\n";
    }

    echo "</tr>\n<tr>\n";
    for ($j=1;$j<=$maxcols;$j++) {
        $p = ($i==1) ? $j : ($j+$maxcols);
        echo "<td id='$p'></td>\n";
    }
    echo "</tr>\n";
}

echo "</table>\n";
}

如果maxcols = 4和maxid = 8,我得到一個看起來像這樣的表:

在此處輸入圖片說明

查看該表的代碼,我可以看到每個TD都有一個與標題ID值匹配的ID。 例如:第1行第2列TD ID = 2標頭= ID2

使用以下方法創建ID值:

    $p = ($i==1) ? $j : ($j+$maxcols);

如果我將maxcols = 2更改,則會得到一個如下表:

在此處輸入圖片說明

但是,TD ID值與Header ID不匹配。 他們去

1,2
3,4
3,4
3,4

如何使每個單元格具有正確的TD ID?

簡單的解決方案:

$maxcols = $cols[$unit[$k]]; 
$maxid = $cells[$unit[$k]]; 
$startid = 1;
$idCounter = 1;
…
…
for ($j=1;$j<=$maxcols;$j++) {
    echo "<td id='$idCounter'></td>\n";
    $idCounter++;
}

可能有一種使用$j$i$maxcols做到這一點的方法,但是為什么使事情復雜化。

如果您確實只想為具有值的單元格分配ID,則可以進行此更改

echo "<td id='".($idCounter<=$maxid ? $idCounter : "")."'></td>\n";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM