【问题标题】:Multi level for loop in PHPPHP中的多级for循环
【发布时间】:2015-12-09 12:42:46
【问题描述】:

我有一个表格侧边栏,其中包含以下

我想在 bootstrap 中创建一个 Accordian,其标题是从 sidebar_category 获取的,并且正文部分包含所有 sidebar_title 以及与 accodian 标题相似的 sidebar_category。我想制作所有不同的 sidebar_category 值的手风琴。

如何使用 foreach 循环来实现这一点,因为我正在使用 Codeigniter。 我希望代码如下:

<div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true">
          <div class="panel panel-danger">
            <div class="panel-heading" role="tab" id="headingOne">
              <h4 class="panel-title">
                <a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseOne" aria-controls="collapseOne">
                  //sidebar_Category Should go here
                </a>
              </h4>
            </div>
            <div id="collapseOne" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingOne">
              <div class="panel-body">
              <h5><a href="#">//Sidebar_title should go here</a></h5>
              </div>
            </div>
          </div>

          <div class="panel panel-warning">
            <div class="panel-heading" role="tab" id="headingTwo" class="active">
              <h4 class="panel-title">
                <a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseTwo" aria-controls="collapseTwo">
                 //Sidebar_category should go here
                </a>
              </h4>
            </div>
            <div id="collapseTwo" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingTwo">
              <div class="panel-body">
                  <h5><a href="#">//Sidebar_Title Goes Here</a></h5>
              </div>
            </div>
          </div>
</div>

我可以试试这个: 1) 使用这个不同的 SQL 查询

SELECT DISTINCT `sidebar_category` FROM `sidebar`

这将为我提供表中不同的 sidebar_category 值。让我们假设它是 4。这可以用于外部 for 循环迭代以在手风琴标题处显示类别。另一个查询将简单地获取整个表。我在这里面临的问题是我将如何确定为下一个 sidebar_category 运行另一个循环

【问题讨论】:

  • 到目前为止,您是否尝试过编写任何 PHP 代码?如果是这样,请发布它。如果没有,请尝试直到您遇到困难,然后再询问更具体的问题。
  • 其实我不知道如何从数据库中获取数据。我应该使用 SELECT DISTINCT sidebar_category FROM sidebar 来获取不同的值,然后将其用作 for 循环,还是应该从数据库中获取所有值,然后对其应用逻辑
  • 啊。请澄清您需要通过编辑问题中的 SQL 查询来获得帮助,并可能添加 SQL 标记。另外,如果你想要的只是 SQL 查询的帮助,也许你应该删除 twitter-bootstrap 和 codeigniter 标签?
  • 其实我需要逻辑方面的帮助
  • @Anders:编辑了问题。

标签: php mysql twitter-bootstrap codeigniter


【解决方案1】:

经过深思熟虑,我制定了一个完全适合我需要的逻辑。数据在手风琴中正确传播。但是默认情况下手风琴面板不会折叠。我正在为此提出一个新问题。这是Link

 <?php 
            $fistForLoopEnds = false;
            $secondForLoopEnds = false;
            $thirdForLoopEnds = false;
            $fourthForLoopEnds = false;
             ?>
          <div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true">
           <?php foreach ($this->data2['distinct'] as $key) { ?>

          <div class="panel panel-<?php if ($fistForLoopEnds != true) {
              echo "danger";
              $panelId = "headingOne";
              $accodianId = "collapseOne";
              $accordionExpanded = "true";
          } elseif ($fistForLoopEnds == true && $secondForLoopEnds != true) {
              echo "warning";
              $panelId = "headingTwo";
              $accodianId = "collapseTwo";
              $accordionExpanded = "false\" class=\"collapsed";
          } elseif ($fistForLoopEnds == true && $secondForLoopEnds == true && $thirdForLoopEnds != true) {
              echo "info";
              $panelId = "headingThree";
              $accodianId = "collapseThree";
              $accordionExpanded = "false\" class=\"collapsed";
          } else { echo "success";
              $panelId = "headingFour";
              $accodianId = "collapseFour"; 
              $accordionExpanded = "false\" class=\"collapsed";
              }?>">
            <div class="panel-heading" role="tab" id="<?php echo $panelId; ?>">
              <h4 class="panel-title">
                <a role="button" data-toggle="collapse" data-parent="#accordion" href="#<?php echo $accodianId; ?>" aria-expanded="<?php echo $accordionExpanded; ?>" aria-controls="<?php echo $accodianId; ?>">
                  <?php echo $key->sidebar_category; ?>
                </a>
              </h4>
            </div>
            <div id="<?php echo $accodianId; ?>" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="<?php echo $panelId; ?>">
              <div class="panel-body">
            <?php 
                if ($fistForLoopEnds != true) {
                    foreach ($this->data2['results_railways'] as $key) { ?>
                        <h5><a href="<?php echo base_url(); ?>home/railways/<?php echo $key->post_id; ?>"><?php echo $key->sidebar_title; ?></a></h5>
                    <?php }
                    $fistForLoopEnds = true;
                    goto a;
                } 
                elseif ($secondForLoopEnds != true) {
                    foreach ($this->data2['results_ssc'] as $key) { ?>
                         <h5><a href="<?php echo base_url(); ?>home/ssc/<?php echo $key->post_id; ?>"><?php echo $key->sidebar_title; ?></a></h5>
                     <?php  }
                    $secondForLoopEnds = true;
                    goto a;
                }
                elseif ($thirdForLoopEnds != true) {
                    foreach ($this->data2['results_banks'] as $key) { ?>
                         <h5><a href="<?php echo base_url(); ?>home/banks/<?php echo $key->post_id; ?>"><?php echo $key->sidebar_title; ?></a></h5>
                     <?php  }
                    $thirdForLoopEnds = true;
                    goto a;
                }
                elseif ($fourthForLoopEnds != true) {
                    foreach ($this->data2['results_upsc'] as $key) { ?>
                         <h5><a href="<?php echo base_url(); ?>home/upsc/<?php echo $key->post_id; ?>"><?php echo $key->sidebar_title; ?></a></h5>
                     <?php  }
                    $fourthForLoopEnds = true;
                    goto a;
                }
                a:
             ?>
              </div>
            </div>
          </div>
           <?php } ?>
          </div>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-12
    • 2015-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-12
    • 2022-11-13
    相关资源
    最近更新 更多