我一直在研究这个问题,而且我可能会比这更困难。任何共享的知识将非常感谢。 我的代码使用API调用数据,我能够将其显示为有序列表,但我想使用表格格式使其更具代表性。 理想情况下,我按天分组显示结果。 下面是我到目前为止创建的内容,但它目前没有输出任何内容:
echo "<table>";
echo "<tr>";
echo "<th>Date</th>";
echo "<th>Number of Asteroids</th>";
echo "</tr>";
echo "<tr>";
foreach ($near_earth_object->close_approach_data as $close_approach) {
echo "<td>" . $close_approach->close_approach_date . "</td>";
foreach ($data->near_earth_objects as $date => $count) {
echo"<td>" . sizeof($count) . "</td></tr>";
}
}
echo "<tr>";
echo "<th>Asteroid Name</th>";
echo "<th>Asteroid Size</th>";
echo "<th>Velocity</th>";
echo "<th>Passing Earth By</th>";
echo "</tr>";
echo "<tr>";
foreach ($data->near_earth_objects->$date as $near_earth_object) {
echo "<td>" . $near_earth_object->name . " <a href='" . $near_earth_object->nasa_jpl_url . "'>" . $near_earth_object->nasa_jpl_url . "</td>";
echo "<td>" . $near_earth_object->estimated_diameter->meters->estimated_diameter_min . " metres</td>";
}
foreach ($near_earth_object->close_approach_data as $close_approach) {
echo "<td>" . $close_approach->relative_velocity->kilometers_per_hour . " km/h " . "</td><td>". $close_approach->miss_distance->kilometers . " km</td></tr> ";
}
echo"</table>";
答案 0 :(得分:1)
尽可能避免回复HTML代码。您可以使用PHP Short tags <?=
和?>
将PHP注入HTML代码。这一行
echo "<td>" . $close_approach->close_approach_date . "</td>";
然后可以更改为
<td><?=$close_approach->close_approach_date?></td>
此外,我没有看到任何PHP开始和结束标记(<?php
和?>
)来启动和结束您的PHP代码(虽然这可能只是在您的示例中缺少)
您只是循环查看表格数据<td>
标记,而不是表格行<tr>
标记。您必须在循环中包含这些内容,以便为循环中的每个项创建新的表行:
foreach ($near_earth_object->close_approach_data as $close_approach) {
echo "<tr>";
最后,PHP为控制结构提供了另一种语法。查看PHP documentation
PHP为其某些控制结构提供了另一种语法;即,if,while,for,foreach和switch。在每种情况下,替代语法的基本形式是将左大括号更改为冒号(:),并将结束大括号分别更改为endif;,endwhile;,endfor;,endforeach;或endswitch;。
您可以使用它来改进现有代码:
foreach ($data->near_earth_objects->$date as $near_earth_object) {
echo "<td>" . $near_earth_object->name . " <a href='" . $near_earth_object->nasa_jpl_url . "'>" . $near_earth_object->nasa_jpl_url . "</td>";
echo "<td>" . $near_earth_object->estimated_diameter->meters->estimated_diameter_min . " metres</td>";
}
把它变成这样的东西
foreach ($data->near_earth_objects->$date as $near_earth_object): ?>
<td><?=$near_earth_object->name?> <a href='<?=$near_earth_object->nasa_jpl_url?>'><?=$near_earth_object->nasa_jpl_url?></td>
<td><?=$near_earth_object->estimated_diameter->meters->estimated_diameter_min?> metres</td>
<? endforeach; ?>
答案 1 :(得分:0)
我建议您创建表格,因为您只想使用HTML查看它,然后使用PHP动态填充它。可能有帮助的是,而不是让PHP回显所有HTML,只需使用PHP来填充数据(即,从显示中分离数据)。就像从here中得到的一个例子:
<div style="width:300px; height:10px;">
<div class="col-xs-6 copyright">
© 2016 company
</div>
<div class="col-xs-6 linkedin">
Follow us on <a someheref>
</a>
</div>
</div>