PHP和HTML:嵌套了HTML的嵌套foreach循环

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP和HTML:嵌套了HTML的嵌套foreach循环相关的知识,希望对你有一定的参考价值。

我正在尝试将带有Accordion布局的项目布局(来自Bootstrap)放在一起。为了填充手风琴,我进入pgsql db来收集数据,我能够检索这些数据。

我遇到的问题是让数据显示出来。现在我得到一个html 500.它可能是一个布局问题,或者它可能是一个php解释问题(可能不够深入?或PHP不可见的东西),但我有问题确定哪个是罪魁祸首。

我这样说是因为我有一个相当复杂的安排,我试图做。

一个样品:

<?php
  // db connection info goes here
  
  // pgsql query info goes here
  $i = 0;
  $result = pg_fetch_all($getData);
?>
<!-- Starting the container accordion -->
<div class="panel-group" id="main-accordion">
  <?php
    foreach($result as $row):
      $title1 = $row['title1'];
      $title2 = $row['title2'];
  ?>
  <div class="panel panel-default">
    <div class="panel-heading">
      <h4 class="panel-title">
        <a data-toggle="collapse" data-parent="#main-accordion" href="#<?=$row['id']?>">
          (<?=$row['category']?>) <?=$title1?> - <?=$title2?>
        </a>
      </h4>
    </div>
    <div id="<?=$row['id']?>" class="panel-collapse collapse">
      <!-- The body of the accordion, contents go here. -->
      <div class="panel-body">
        <?php 
          // another pgsql query here
          
          $newresult = pg_fetch_all($newgetData);
        ?>
        <!-- In the accordion body, a new group of accordions. This is doable if hardcoded -->
        <div class="panel-group" id="sub-accordion-<?=$i?>">
          <?php
            // I think this is where the issues start??
            foreach($newresult as $newrow):
              $subtitle = $newrow['subtitle'];
          ?>
          <div class="panel panel-default">
            <div class="panel-heading">
              <h4 class="panel-title">
                <a data toggle="collapse" data-parent="#sub-accordion" href="#<?=$newrow['subid']?>">
                  <?=$subtitle?>
                </a>
              </h4>
            </div>
            <div id="<?=$newrow['subid']?>" class="panel-collapse panel">
              <div class="panel-body">
              <!-- contents go here -->
              </div>
            </div>
          </div>
          <?php endforeach; ?>
        </div>
      </div>
    </div>
    <?php
      $i++; 
      endforeach; ?>
  </div>
</div>

所以,现在我的问题是Web开发人员使用HTML PHP和Bootstrap exp。:

  1. 是否有可能以这种方式嵌套foreach循环而不回退到echo语句以打印HTML(因为ew)?它会以这种方式实际创建(重复)手风琴对象的HTML,还是我需要在这里修改一些东西?
  2. 什么可能触发HTML 500?

我意识到这是一个难以回答的问题,如果没有实时工作代码可以搞砸。如果有人知道一个很好的资源来快速沙箱整个堆栈用于演示目的,我很高兴知道它,所以我可以提出一些“工作”代码。

编辑1:用户Sean指出子手风琴是循环的。在迭代器中添加,修改此id,因为目标是具有多个子手风琴,而不是具有相同的id。

编辑2:可能已经解决了我自己的问题: 1.结果我在检索ajax请求时使用了错误的方法:使用PHP的$ _POST ['var']而不是$ _GET ['var'] 2.我的一个简写PHP标签上有一个语法错误。

现在事情正在出现!但是,格式化仍然是错误的。我可以解决这个问题。谢谢大家的帮助!

答案

在PHP.ini中,可能会关闭短标记。在这种情况下,您要么打开,要么如果您无法访问PHP.ini,那么您不应该使用短回声标记`,尝试将其更改为

以上是关于PHP和HTML:嵌套了HTML的嵌套foreach循环的主要内容,如果未能解决你的问题,请参考以下文章

将嵌套数组转换为嵌套 html 块的递归 php 函数

PHP学习—PHP文件嵌套HTML

PHP 搜索嵌套的html元素

Php页面 跳转到带有iframe嵌套的指定嵌套页面

HTML嵌套php

PHP脚本遍历目录/文件树并作为嵌套UL输出树[关闭]