doupai8533 2018-01-17 10:40
浏览 72
已采纳

围绕每两个不能正常工作的项目包装标签

I am trying to wrap a div around every two elements I am looping with php but I am not getting the desired output.

Below my PHP code:

<?
$diensten = "SELECT * FROM snm_content WHERE catid = 9 AND state = 1 ORDER BY ordering";
$dienstencon = $conn->query($diensten);
$tel = 1;
while($diensten = $dienstencon->fetch_assoc()){
  if (strlen($diensten['introtext']) > 100){
     $shortstr = substr($diensten['introtext'], 0, 100) . '...';
  }else{
     $shortstr = $diensten['introtext'];
  }
  //Wrap de slide in deze div elke 2 keer binnen de loop
  if($tel % 2 == 1){
    $dienstenslider .= '<div class="col-lg-12 col-md-12 col-sm-12">';
  }

  $dienstenslider .= '
    <div class="col-lg-6 col-md-6 col-sm-12">
        <div class="serv-item pull-left">
            <p class="ser-tit"><i class="pe-7s-notebook"></i><a href="info/'.$diensten['alias'].'.html">'.$diensten['title'].'</a></p>
            <p class="ser-cont">
                '.strip_tags($shortstr).'
            </p>
            <a href="info/'.$diensten['alias'].'.html" class="ser-read-more">Lees meer<i class="fa fa-angle-right"></i></a>
        </div>
    </div>';

    if(($tel % 2) == 0){
        $dienstenslider .= '</div> <div class="col-lg-12 col-md-12 col-sm-12">';
    }
    $tel++;
}

if(($tel % 2) != 0){
    $dienstenslider .= '</div>';
}

echo $dienstenslider;
?>

And this is the output that I am getting from that code:

<div class="box ser-box large-width-box-w1 box-h1">
   <div id="service-owl" class="owl-carousel owl-theme" style="opacity: 1; display: block;">
      <div class="owl-wrapper-outer autoHeight" style="height: 272px;">
         <div class="owl-wrapper" style="width: 3120px; left: 0px; display: block; transition: all 1000ms ease; transform: translate3d(0px, 0px, 0px);">
            <div class="owl-item" style="width: 780px;">
               <div class="col-lg-12 col-md-12 col-sm-12">
                  <div class="col-lg-6 col-md-6 col-sm-12">
                     <div class="serv-item pull-left">
                        <p class="ser-tit"><i class="pe-7s-notebook"></i><a href="info/begeleiding-individueel.html">Begeleiding Individueel</a></p>
                        <p class="ser-cont">
                           Begeleiding thuis is praktische hulp aan mensen die door problemen de grip op hun dagelijks leven...
                        </p>
                        <a href="info/begeleiding-individueel.html" class="ser-read-more">Lees meer<i class="fa fa-angle-right"></i></a>
                     </div>
                  </div>
                  <div class="col-lg-6 col-md-6 col-sm-12">
                     <div class="serv-item pull-left">
                        <p class="ser-tit"><i class="pe-7s-notebook"></i><a href="info/verpleging.html">Verpleging</a></p>
                        <p class="ser-cont">
                           Thuis is de plek waar u het liefst wilt zijn. Daar voelt u zich het meest op uw gemak. In uw eige...
                        </p>
                        <a href="info/verpleging.html" class="ser-read-more">Lees meer<i class="fa fa-angle-right"></i></a>
                     </div>
                  </div>
               </div>
            </div>
            <div class="owl-item" style="width: 780px;">
               <div class="col-lg-12 col-md-12 col-sm-12">
                  <div class="col-lg-12 col-md-12 col-sm-12">
                     <div class="col-lg-6 col-md-6 col-sm-12">
                        <div class="serv-item pull-left">
                           <p class="ser-tit"><i class="pe-7s-notebook"></i><a href="info/hulp-bij-het-huishouden.html">Hulp bij het huishouden</a></p>
                           <p class="ser-cont">
                              Als u door welke reden dan ook niet meer zelfstandig uw huishouden kunt voeren en hierbij (tijdel...
                           </p>
                           <a href="info/hulp-bij-het-huishouden.html" class="ser-read-more">Lees meer<i class="fa fa-angle-right"></i></a>
                        </div>
                     </div>
                     <div class="col-lg-6 col-md-6 col-sm-12">
                        <div class="serv-item pull-left">
                           <p class="ser-tit"><i class="pe-7s-notebook"></i><a href="info/persoonlijke-verzorging.html">Persoonlijke verzorging</a></p>
                           <p class="ser-cont">
                              Heeft u moeite met opstaan? Kunt u zichzelf steeds moeilijker verzorgen? Of geldt dit misschien v...
                           </p>
                           <a href="info/persoonlijke-verzorging.html" class="ser-read-more">Lees meer<i class="fa fa-angle-right"></i></a>
                        </div>
                     </div>
                  </div>
                  <div class="col-lg-12 col-md-12 col-sm-12">
                     <div class="col-lg-12 col-md-12 col-sm-12">
                        <div class="col-lg-6 col-md-6 col-sm-12">
                           <div class="serv-item pull-left">
                              <p class="ser-tit"><i class="pe-7s-notebook"></i><a href="info/hulp-bij-dementie.html">Hulp bij Dementie</a></p>
                              <p class="ser-cont">
                                 in ontwikkeling&nbsp;
                              </p>
                              <a href="info/hulp-bij-dementie.html" class="ser-read-more">Lees meer<i class="fa fa-angle-right"></i></a>
                           </div>
                        </div>
                     </div>
                     <!-- Slider -->
                  </div>
               </div>
            </div>
         </div>
      </div>
      <div class="owl-controls clickable">
         <div class="owl-pagination">
            <div class="owl-page active"><span class=""></span></div>
            <div class="owl-page"><span class=""></span></div>
         </div>
      </div>
   </div>
</div>

While this is what I want:

<div class="box ser-box large-width-box-w1 box-h1">
   <div id="service-owl" class="owl-carousel owl-theme" style="opacity: 1; display: block;">
      <div class="owl-wrapper-outer autoHeight" style="height: 297px;">
         <div class="owl-wrapper" style="width: 3120px; left: 0px; display: block; transform: translate3d(-780px, 0px, 0px); transition: all 800ms ease;">
            <div class="owl-item" style="width: 780px;">
               <div class="col-lg-12 col-md-12 col-sm-12">
                  <div class="col-lg-6 col-md-6 col-sm-12">
                     <div class="serv-item pull-left">
                        <p class="ser-tit"><i class="pe-7s-notebook"></i><a href="info/begeleiding-individueel.html">Begeleiding Individueel</a></p>
                        <p class="ser-cont">
                           Begeleiding thuis is praktische hulp aan mensen die door problemen de grip op hun dagelijks leven...
                        </p>
                        <a href="info/begeleiding-individueel.html" class="ser-read-more">Lees meer<i class="fa fa-angle-right"></i></a>
                     </div>
                  </div>
                  <div class="col-lg-6 col-md-6 col-sm-12">
                     <div class="serv-item pull-left">
                        <p class="ser-tit"><i class="pe-7s-notebook"></i><a href="info/verpleging.html">Verpleging</a></p>
                        <p class="ser-cont">
                           Thuis is de plek waar u het liefst wilt zijn. Daar voelt u zich het meest op uw gemak. In uw eige...
                        </p>
                        <a href="info/verpleging.html" class="ser-read-more">Lees meer<i class="fa fa-angle-right"></i></a>
                     </div>
                  </div>
               </div>
            </div>
            <div class="owl-item" style="width: 780px;">
               <div class="col-lg-12 col-md-12 col-sm-12">
                 <div class="col-lg-6 col-md-6 col-sm-12">
                    <div class="serv-item pull-left">
                       <p class="ser-tit"><i class="pe-7s-notebook"></i><a href="info/persoonlijke-verzorging.html">Persoonlijke verzorging</a></p>
                       <p class="ser-cont">
                          Heeft u moeite met opstaan? Kunt u zichzelf steeds moeilijker verzorgen? Of geldt dit misschien v...
                       </p>
                       <a href="info/persoonlijke-verzorging.html" class="ser-read-more">Lees meer<i class="fa fa-angle-right"></i></a>
                    </div>
                 </div>
                 <div class="col-lg-6 col-md-6 col-sm-12">
                    <div class="serv-item pull-left">
                       <p class="ser-tit"><i class="pe-7s-notebook"></i><a href="info/hulp-bij-dementie.html">Hulp bij Dementie</a></p>
                       <p class="ser-cont">
                          in ontwikkeling&nbsp;
                       </p>
                       <a href="info/hulp-bij-dementie.html" class="ser-read-more">Lees meer<i class="fa fa-angle-right"></i></a>
                    </div>
                 </div>
               </div>
            </div>
         </div>
      </div>
      <!-- Slider -->
      <div class="owl-controls clickable">
         <div class="owl-pagination">
            <div class="owl-page"><span class=""></span></div>
            <div class="owl-page active"><span class=""></span></div>
         </div>
      </div>
   </div>
</div>

How can I get that output? Even when there are an uneven amount of items being loaded?

This is what I am currently working on (the slider is not working without problems as you can see).

This is almost a copy of the website where the slider does work (the reason I am not copying that is because it is outdated/messy code).

  • 写回答

1条回答 默认 最新

  • duanlian1978 2018-01-17 10:49
    关注

    The approach with modulo is correct, but you are writing duplicate opening tags.
    the first usage is okay:

    //Wrap de slide in deze div elke 2 keer binnen de loop
    if($tel % 2 == 1){
        $dienstenslider .= '<div class="col-lg-12 col-md-12 col-sm-12">';
    }
    

    The second usage you should only put a closing tag:

    if(($tel % 2) == 0){
        // the opening tag will be written in the first usage above. writing it here too results in duplicate opening tags
        // $dienstenslider .= '</div><div class="col-lg-12 col-md-12 col-sm-12">';  
        $dienstenslider .= '</div>';
    }
    

    Then you have another usage outside your while loop. This looks okay too.

    if(($tel % 2) != 0){
        $dienstenslider .= '</div>';
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器