在else中的<! - div - >之后没有显示内容if

时间:2014-05-22 04:50:19

标签: php html loops if-statement

(用谷歌翻译,抱歉。)需要评估循环内的这种情况。如果为true,则关闭</ div>(在外部打开),添加<iframe>并重播循环。我的问题是,在“elsif”关闭第一个div时,它没有显示以下内容。第一个“如果”工作完美。

<?php if($adcount == 8 and $bbb == 8 and $paged == 0) { ?>
    </div>
    <div id="adds-inner" class="col-md-12 col-sm-12">
        <iframe id="my_ad" src="/ad.html" scrolling="no" frameborder="0" style="width:100%;"></iframe>
    </div>
<?php } else if($adcount == 8 and $bbb == 8 and $paged > 0) { ?>
    <p> this is shown </ p> 
    </div>
    <p> Incredibly, this does not </ p> 
    <div id="adds-inner" class="col-md-12 col-sm-12">
        <iframe id="my_ad" src="/ad2.html" scrolling="no" frameborder="0" style="width:100%;"></iframe>
    </div>
<?php } else { ?>
    </div>
<?php } ?>

更新

问题是由于插件(无限滚动)配置错误,php代码工作正常。谢谢大家的支持,并为这个错误感到抱歉。

2 个答案:

答案 0 :(得分:1)

我不认为问题是你认为的那样。正如@JoshfromQaribou在这篇评论中所说,我们可以在if else语句中模拟</div>,因为无论逻辑如何都需要它。但如果永远不会达到声明,问题似乎就是你的问题。我看不到完整的代码,但是如果你只获得</div>而不是其他代码,那么那个代码永远不会被触及,而是直接进入其他代码。

试试这段代码:

  </div> <?php #<----- See how I moved this out of each below. ?> 
<?php if($adcount == 8 and $bbb == 8 and $paged == 0) { ?>
  <br />First Condition<br />
  <div id="adds-inner" class="col-md-12 col-sm-12">
    <iframe id="my_ad" src="/ad.html" scrolling="no" frameborder="0" style="width:100%;"></iframe>
  </div>
<?php } else if($adcount == 8 and $bbb == 8 and $paged > 0) { ?>
  <br />Second Condition<br />
  <div id="adds-inner" class="col-md-12 col-sm-12">
    <iframe id="my_ad" src="/ad2.html" scrolling="no" frameborder="0" style="width:100%;"></iframe>
  </div>
<?php } else { ?>
    <br />No conditions met.<br />
<?php } ?>
Done with conditions.

我打赌你得到“没有条件满足。”可能是因为$paged小于0,或者您的另一个变量中的一个(或两个)不等于8。

<强>更新

使用更新后的代码,我可以看到您的else if条件已得到满足。真的很奇怪,这只会显示一些HTML。我不确定它会为你做什么,但尝试这个重构的代码。简化代码可能会使问题更加明显。

  </div>
<?php if($adcount == 8 && $bbb == 8) { ?>
  <div id="adds-inner" class="col-md-12 col-sm-12">
    <iframe id="my_ad" src="<?php if($paged==0) echo "/ad.html" else if($paged > 0) echo "/ad2.html" ?>" scrolling="no" frameborder="0" style="width:100%;"></iframe>
  </div>
<?php } ?>

只需复制并覆盖您的代码所在的位置即可。不要做任何改变。

答案 1 :(得分:0)

你有没有试过echo你的HTML,而不是只是在那里。我发现有时使用像这样的html给我带来了bug,所以我通常用单引号回显和包装html。