php - 生成 foreach html 输出变量

标签 php html mysql foreach

我在尝试找出最佳方法时遇到问题。我正在创建一个模板/评论系统,允许用户填写模板,然后搜索已完成的评论。每条评论都标记在我需要显示的多个部分上。

我的问题是我需要列出每个单独的评论及其在“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>";
}

最佳答案

查看代码,我很想先创建带有示例内容的 html,以了解页面的感觉以及您想要的最终结果。然后,一旦您满意,将 php 添加到第一个 foreach block 并使用 var_dumps 或 print_r 命令测试您是否获得了正确的信息。

一旦您感到满意,就可以继续进行第二个 foreach block ,边做边测试。

尝试以这种方式组合代码和 html 总是有点令人畏惧,像这样的小块工作可以让您对最终结果更有信心。

我希望这会有所帮助。

关于php - 生成 foreach html 输出变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16811112/

相关文章:

php - session 变量的替代品?

Symfony 3 twig 文件中的 javascript 函数未定义错误

mysql - 主动记录查询以从三个关联模型中获取数据

c# - asp.net 到 MySql 的问题。尝试从输入返回信息

php - ajax登录问题

php - 在 Python 中使用 IMAPClient 获取电子邮件 - 需要将数据存储在列表中

php - 准备好的语句获取行不返回任何内容

css - 使用多个内联标签创建 Bootstrap 表单并选择

html - 如何确保填充也影响所有行而不仅仅是第一行?

MYSQL 从选择和变量中插入