Foreach导致编号格式

时间:2013-06-07 08:51:28

标签: php css foreach html-lists

我正在使用编码器,并且我将从数据库中显示soms结果。使用PHP显示结果如下:

 <?php
        if(isset($foo)){
            foreach($foo as $bar){ ?>
            <ol><li>
                <div class="results">  
                    <p class="name"><?php echo $bar['name']; ?></p>
                    <p class="address"><?php echo $bar['address']; ?></p>
                    <p class="address"><?php echo $bar['postcode']; ?></p> 
                    <span><?php number_format($bar['miles'],3) ?></span> miles               
                </div>
            </li></ol>  
            <?php
          }
        }
        ?>

我也尝试将课程'结果'添加到ol li.results并且没有运气。添加了边框,边框包裹每个结果,所以我知道我的标签是在正确的位置。 CSS:

ol li {
    border:1px solid red;
    list-style-type: decimal;
}

在reset.css中我有这个:

loads...of...elements including ul, ol and li {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
}

我从中移除了ol,li并且我得到了数字,但是每个结果都有1.而不是1,2 3

这些显示为地址列表,我想让它们编号,所以第一个将有1.RESULT 1,2.RESULT 2等等...我试图使用有序列表标签似乎没有任何关于数字的信息。我已经检查了萤火虫,并且标签正在为每个人开火。这是一个CSS问题还是PHP显示结果的方式?

非常感谢任何帮助。

4 个答案:

答案 0 :(得分:6)

您忘记了<li>代码

中的<ol>代码
<?php
        if(isset($foo)){
            echo '<ol>';
            foreach($foo as $bar){ ?>
            <li>
                <div class="results">  
                    <p class="name"><?php echo $bar['name']; ?></p>
                    <p class="address"><?php echo $bar['address']; ?></p>
                    <p class="address"><?php echo $bar['postcode']; ?></p> 
                    <span><?php number_format($bar['miles'],3) ?></span> miles               
                </div>
            </li>  
            <?php
          }
          echo '</ol>';
        }
?>

答案 1 :(得分:3)

尝试以下

<?php if(isset($foo)): ?>
    <ol>
      <?php foreach($foo as $bar): ?>
      <li class='results'>
        <p class="name"><?php echo $bar['name']; ?></p>
        <p class="address"><?php echo $bar['address']; ?></p>
        <p class="address"><?php echo $bar['postcode']; ?></p> 
        <span><?php number_format($bar['miles'],3) ?></span> miles               
      <li>
      <?php endforeach; ?>
    </ol> 
<?php endif; ?>

答案 2 :(得分:1)

如果没有显示数字,这是一个CSS问题。重置样式表的常见问题。尝试添加:

list-style-type: decimal;

到您的列表样式。

答案 3 :(得分:1)

如果我做对了,那么您的<OL></OL>标签应该保留在for cicle之外,而您应该将输出包裹在cicle内<LI></LI>之间。 此外,将DIV放入LI元素中并不是一个好习惯,如果可以通过改变样式来避免它。