我正在尝试使用数据库中的数据填充我的html表,但每个新行都添加到表中,表格向下移动。例如,如果向表中添加了38行,则该表将变为不可见。你必须向下滚动才能看到表格。问题可能是什么?
echo "
<div class='container'>
<span class='cc' style='font-weight: bold;'>Count: $stat</span></br></br>
<table class='col-md-9' border='1'>
<th>Agent's name</th>
<th>Student's name</th>
<th>Student's number</th>
<th>Accommodation type</th>
<th>School</th>
<th>Date & Time</th>
";
foreach($db->query($select) AS $result){
echo "
<tr><td>{$result['agent_name']}</td>
<td>{$result['student_name']}</td>
<td>{$result['student_number']}</td>
<td>{$result['accommodation']}</td>
<td>{$result['school']}</td>
<td>{$result['contact_date']}</td>
</tr>
</br>
";
}
echo "
</table>
</div>
";
答案 0 :(得分:3)
您不能直接在<th>
内<table>
。请将它们包裹在<tr>
内。
您必须从foreach
获取行才能获得结果行。您正在循环的那个只是stdObject ResultSet
。将您的代码更改为:
$result = $db->query($select)
if (mysqli_num_rows($result) > 0)
while (false != ($row = mysqli_fetch_array($result)))
// Loop here.
是的,正如其他人所说,<table>
代码只能包含<tbody>
,<thead>
,<tfoot>
和<tr>
。没有其他的。没有像</br>
这样的标签。它必须是<br />
。刷新HTML的基础知识。
答案 1 :(得分:0)
两件事:
首先,您需要将标题元素包装在一行中:
<tr> <!-- here -->
<th>Agent's name</th>
<th>Student's name</th>
<th>Student's number</th>
<th>Accommodation type</th>
<th>School</th>
<th>Date & Time</th>
</tr> <!-- and here -->
其次,这些是什么?:
</br>
浏览器可能会将它们解释为:
<br />
这意味着您要在每个行的表结构中添加换行符。这可能是无效的(因为它超出了表格单元格和表格本身的一部分),但也可能是为什么每一行都将显示向下推得更远。从循环中删除它。
由于代码生成了无效的表标记,因此样式化和呈现表将会有些不确定,并且每个浏览器可能会有所不同。
答案 2 :(得分:0)
您需要将
public class ZoomableCanvas extends Pane { DoubleProperty scale = new SimpleDoubleProperty(1.0); public ZoomableCanvas() { scaleXProperty().bind(scale); scaleYProperty().bind(scale); getChildren().addListener((Change<? extends Node> c) -> { while (c.next()) { if (c.wasAdded()) { for (Node child : c.getAddedSubList()) { child.scaleXProperty().bind(scale); child.scaleYProperty().bind(scale); } } if (c.wasRemoved()) { for (Node child : c.getRemoved()) { child.scaleXProperty().unbind(); child.scaleYProperty().unbind(); } } } }); } public double getScale() { return scale.get(); } public void setScale(double scale) { this.scale.set(scale); } public void setPivot(double x, double y) { setTranslateX(getTranslateX() - x); setTranslateY(getTranslateY() - y); } }
包裹在<th></th>
中,
确实如此。
其次,在这种情况下,我建议不要使用<tr></tr>
。以下是代码的样子:
echo
这将是我更喜欢的代码,因为您将在代码编辑器中保留HTML颜色,这使其他人可以更轻松地进行调试。
小解释:
<div class='container'>
<span class='cc' style='font-weight: bold;'><?php Count: $stat ?></span></br></br>
<table class='col-md-9' border='1'>
<tr>
<th>Agent's name</th>
<th>Student's name</th>
<th>Student's number</th>
<th>Accommodation type</th>
<th>School</th>
<th>Date & Time</th>
</tr>
<?php
foreach($db->query($select) AS $result):
?>
<tr>
<td><?=$result['agent_name']?></td>
<td><?=$result['student_name']?></td>
<td><?=$result['student_number']?></td>
<td><?=$result['accommodation']?></td>
<td><?=$result['school']?></td>
<td><?=$result['contact_date']?></td>
</tr>
</br>
<?php
endif;
?>
</table>
</div>
和<?=
易于使用打开和关闭标记来回显HTML中的变量。