[英]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.