我有一个网页,其中显示项目列表以及每个季度的进度/财务监控。如下图:
如您所见,我的表格由项目名称及其下方的副标题列表组成。每个季度都有一系列专栏。通过PHP
我能够在项目名称下填充字幕列表,该列表也是从服务器端获取的。代码如下:
$sql = mysqli_query($con," My SELECT Statement ");
$i=0;
while($row = mysqli_fetch_assoc($sql)){
$ptitle = $row['Title'];
$iname = $row['Item'];
if($i%1)
{
?>
<?php } else { ?>
<tr>
<?php } ?>
<td width="25%"><?php echo $ptitle; ?></td>
<td></td>
</tr>
<tr>
<td><?php echo "<ul style='list-style-type: none;'><li>".nl2br($iname)."</li></ul>"; ?></td>
<td contenteditable="true" name="v1"></td>
注意: ptitle = 项目名称,iname = 项目名称下方的半标题。
现在,如您所见,“项目名称”列实际上“征服”了左侧的一行。然而,每个季度的列下的行应该有自己的单独的行,并且必须与项目名称下的每个副标题平行。 (请参阅上图)我遇到的唯一问题是...如何从一行内部创建可编辑行,而不影响 mysqli 结果?因为基本上我现在的表是有点像这样:
谁有这方面的经验?我需要你的帮助。
PS: ...哦!您可能想知道为什么我要包含 JSON
在标题中?是因为,我本来用JSON
在我使用 mysqli_fetch_array
之前编辑这些表行。但是当我包含 array
的结果时里面<table>
标签,一切都变了,JSON
不再工作了。所以到目前为止,我被迫手动执行此操作,这意味着输入每个 <td contenteditable=true>
在所有这些行中。然而,它不是所需的输出,因为我需要现有行中的另一行。有想法吗?有人吗?
图二:
图三:
最佳答案
计算 $iname
中的行数,然后使用循环创建那么多行可内容编辑的单元格。您还可以在 rowspan
中使用它<td>
的属性包含标题和副标题。
$rows = substr_count($iname, "\n") + 1;
for ($i = 0; $i < $rows; $i++) {
echo "<tr>";
if ($i == 0) { ?>
<td rowspan='<?php echo $rows;?>' width='25%'><?php echo $ptitle . "<br>" . nl2br($iname);?></td>
<?php }
?>
<td contenteditable="true" name="v1"></td><td contenteditable="true" name="v2"></td>...
</tr>
<?php }
关于php - JSON 的行内行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48497057/