2017-07-29 38 views
0

我想爲每個帖子生成不同的引導程序導航標籤,並且標籤列表將有所不同,基本上基於一些條件。有些帖子可能是3個標籤,有些帖子可能是2個,但至少有1個標籤應該在那裏。像下面的圖片我如何動態生成不同的引導標籤與php

This Image

我面對每一個的每一個崗位1片類應該是。主動的問題 - 我不能保持標籤的其餘部分相同的柱。下一個每個帖子的標籤ID和不同的標籤內容不能正確同步。它會被複制。另外請注意查詢是完美的。只是邏輯問題

下面是代碼結構:

<ul class="nav nav-tabs"> 
    <?php 
     $qu= "sql query for generating all tabs with some condition"; 
     $rr=mysqli_query($conn,$qu); 
     while($tab1 =mysqli_fetch_array($rr)){ 
    ?> 
     <li class=""><a data-toggle="tab" href="#<?php echo $tab1['field_name']; ?>"><?php echo $tab1['field_name'];?></a></li> 
      // class active problem 
    <?php } ?> 

    </ul> 

    <div class="tab-content"> 
     <?php 
     $qu= "sql query for generating all tabs with some condition"; //again i run same query of above 
     $rr=mysqli_query($conn,$qu); 
     while($tab1 =mysqli_fetch_array($rr)) { 
     ?> 
     <div id="<?php echo $tab1['field_name']; " class="tab-pane fade in active"> //here also fade in active 
     <table> 
      <thead 
      <tr> all rows </tr> 
      </thead 
      <?php 
       $qu1= "sql query for generating result"; 
       $resout = mysqli_query($conn, $qu1); 
       if(mysqli_num_rows($resout) > 0){ 
       while($row2 =mysqli_fetch_array($resout)){ 
      ?> 
      <tbody 
      <tr> <td><?php echo $row2['field_name'];?></td> </tr> 
      </tbody> 
      <?php 
       } 
        } 
       else { 
         echo 'No result Found'; 
        } 
      ?> 
     </table> 

     </div> 
    </div> 
    <?php } ?> <!-- End of the While Loop --> 
</div> 

請告訴我如何才能解決這個邏輯,這樣對每一個崗位的所有標籤都應該適當地也。主動類第一個標籤。如果問題無法理解,請發表評論。我會改變線路。因爲我需要這個幫助。

+0

爲實現您的要求,您可以介紹與計數器值的變量。這可以在while循環開始之前引入,並且在循環結束時應該加1。然後使用'if'條件來檢查計數器的值。如果它是1,則回顯'active'類,'else'將其留空。 –

回答

0

你可以試試這個方法

<?php $tab_array = array(array('name' => 'Section A' , 'html' => 'HTML DATA OF Section A') , array('name' => 'Section B' , 'html' => 'HTML DATA OF Section B')); ?> 

<ul class="nav nav-tabs"> 
    <?php foreach($tab_array as $key => $tab){ ?> 
     <?php if($key==0){ ?> 
      <li class="active"><a data-toggle="tab" href="#section<?php echo $key; ?>"><?php echo $tab['name']; ?></a></li> 
     <?php }else{ ?> 
      <li><a data-toggle="tab" href="#sectionB<?php echo $key; ?>"><?php echo $tab['name']; ?></a></li> 
     <?php } ?> 
    <?php } ?> 
</ul> 


<div class="tab-content"> 

    <?php foreach($tab_array as $key => $tab){ ?> 
     <?php if($key==0){ ?> 
      <div id="section<?php echo $key; ?>" class="tab-pane fade in active"> 
       <?php echo $tab['html']; ?> 
      </div> 
     <?php }else{ ?> 
      <div id="section<?php echo $key; ?>" class="tab-pane fade in"> 
       <?php echo $tab['html']; ?> 
      </div> 
     <?php } ?> 
    <?php } ?>  


</div> 
0

有很多方法可以實現這一點。例如,您可以在while循環外設置一個值爲1的變量。

$flag = 1; 

然後while循環中,在第一次循環,

if($flag == 1){ 
    print('<li class="active">'); 
    $flag = 0; 
} 
else{ 
    print('<li>'); 
} 

此外,你應該考慮構建你的代碼更好。首先將所有數據提取到單獨的文件中,然後將其傳遞到HTML模板。

0
<ul class="nav nav-tabs"> 
    <?php 
     $qu= "sql query for generating all tabs with some condition"; 
     $rr=mysqli_query($conn,$qu); 
     $num = 0; 
     while($tab1 =mysqli_fetch_array($rr)){ 
    ?> 
     <li <?php if($num == 0){ ?> class="active" <?php }else{?> class="" <?php }?>><a data-toggle="tab" href="#<?php echo $tab1['field_name']; ?>"><?php echo $tab1['field_name'];?></a></li> 

    <?php 
    $num++; 
    } ?> 

    </ul> 

    <div class="tab-content"> 
     <?php 
     $qu= "sql query for generating all tabs with some condition"; //again i run same query of above 
     $rr=mysqli_query($conn,$qu); 
     $num = 0; 
     while($tab1 =mysqli_fetch_array($rr)) { 

     ?> 
     <div id="<?php echo $tab1['field_name']; ?>" <?php if($num == 0){ ?> class="tab-pane fade in active" <?php }else{?> class="tab-pane fade in" <?php }?> > 
     <table> 
      <thead> 
      <tr> all rows </tr> 
      </thead> 
      <?php 
       $qu1= "sql query for generating result"; 
       $resout = mysqli_query($conn, $qu1); 
       if(mysqli_num_rows($resout) > 0){ 
       while($row2 =mysqli_fetch_array($resout)){ 
      ?> 
      <tbody> 
      <tr> <td><?php echo $row2['field_name'];?></td> </tr> 
      </tbody> 
      <?php 
       } 
        } 
       else { 
         echo 'No result Found'; 
        } 
      ?> 
     </table> 

     </div> 

    <?php 
    $num++; 
    } ?> <!-- End of the While Loop --> 
    </div> 
</div> 

我相信這將有助於事件,雖然我不明白的問題。

檢查throught我已經解決了這個問題,主動