我在尝试找出最好的方法时遇到了问题。我正在创建一个模板/评论系统,允许用户填写模板,然后搜索已完成的评论。每个评论都标记在我需要显示的多个部分。
我的问题是我需要列出每个单独的评论及其在'slidingDiv'中的部分。目前这会覆盖$ htm变量,因此每个评论&它的各个部分在显示时完全相同(每个部分使用不同的模板完成,因此应该不同)。我尝试使用数组,但这些都被覆盖了。视觉上的想法是有一个表格显示每个评论,然后当他们选择评论时,'slidingDiv'在评论表下面显示该评论的部分。
我意识到我离解决方案很远,但这是我得到的最接近的。目前我有以下内容:
if (isset($reviews)) {
include ("templates/default/pheader.php");
echo "<p>Search results displayed below:</p>";
echo "<table id=table-search>";
echo "<tr>";
echo "<th>ECR</th><th>Consultant</th><th>Reviewer</th><th>Template</th><th>Date</th>";
echo "</tr>";
foreach ($reviews as $review) {
$ecr = $review->get_ecr();
$member = $review->get_team_member();
$user = $review->get_user();
$user_name = $user->get_name();
$template = $review->get_template();
$template_name = $template->get_name();
$member_name = $member->get_name();
$timestamp = $review->get_timestamp();
echo "<tr>";
echo "<td>";
echo "<a href=\"#\" class=\"show_hide\">$ecr</a>";
echo "</td>";
echo "<td>";
echo "$member_name";
echo "</td>";
echo "<td>";
echo "$user_name";
echo "</td>";
echo "<td>";
echo "$template_name";
echo "</td>";
echo "<td>";
echo "$timestamp";
echo "</td>";
echo "</tr>";
foreach ($review->get_sections() as $section) {
$section_name = $section->get_name();
$section_total = $section->get_total();
$section_mark = $section->get_mark();
$section_pass = $section->get_pass();
if ($section_pass == 1) {
$section_pass = "<font color = \"green\">PASS</font>";
} else {
$section_pass = "<font color = \"red\">FAIL</font>";
}
$htm .= "<tr><td>$section_name</td>";
$htm .= "<td>$section_total / $section_mark marks</td>";
$htm .= "<td>$section_pass</td></tr>";
}
}
echo "</table>";
echo "<div class=\"slidingDiv\">";
echo "<table>";
//List each section per Review
echo "</table>";
echo "<p><a href=\"#\" class=\"show_hide\">Hide</a></div></p>";
echo "<p><a href=\"search.php\">Search Again</a></p>";
}
答案 0 :(得分:1)
查看代码,我很想首先使用示例内容创建html,以获得页面的感觉以及您的目标最终结果。然后,一旦你开心,将php添加到第一个foreach块并使用var_dumps或print_r命令测试你是否获得了正确的信息。
一旦你开心,继续前进到第二个foreach区块,随时进行测试。
尝试以这种方式组合代码和html将总是有点令人生畏,使用像这样的一口大小的块可以让你对最终结果更有信心。
我希望这会有所帮助。