【问题标题】:Foreach results in numbered formatForeach 结果以编号格式
【发布时间】:2013-06-07 08:51:27
【问题描述】:

我正在使用 codeingiter,并且有一些我从数据库中显示的结果。使用 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 显示结果的方式?

任何帮助将不胜感激。

【问题讨论】:

  • 你的ol 中有div 和p,你能展示你的CSS 吗?
  • class="results" class="name" 和 class="address" 中的内容
  • 你需要把
      标签放在 foreach 循环之外,否则你会得到很多包含一个点的有序列表。
  • CSS 现在添加到问题中 - 谢谢

标签: php css foreach html-lists


【解决方案1】:

您忘记了&lt;ol&gt; 标签内的&lt;li&gt; 标签

<?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>';
        }
?>

【讨论】:

  • 抱歉,这些现在已添加,但仍然没有运气。检查了我的 reset.css 表单,以下是:ol, ul { list-style: none; }。当我将其更改为十进制时,页面上的其他元素会被编号,甚至更改为 ol li 和 ol、li 并且没有运气。
  • 只需将其添加到您想要的列表中。将
      更改为 '
        ';并在 css 中设置 .myorderedlist{ list-style-type: decimal; }
【解决方案2】:

试试下面的

<?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; ?>

【讨论】:

    【解决方案3】:

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

    list-style-type: decimal;
    

    到您的列表样式。

    【讨论】:

      【解决方案4】:

      如果我猜对了,您的 &lt;OL&gt; 和 &lt;/OL&gt; 标记应该留在 for cicle 之外,而您应该将输出包装在 cicle 内的 &lt;LI&gt; 和 &lt;/LI&gt; 之间。 此外,将 DIV 放在 LI 元素中并不是一个好习惯,如果可以通过更改样式来避免它。

      【讨论】:

      • 在回答之前我没有看到你的编辑,无论如何我很高兴你解决了你的问题:)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-26
      • 1970-01-01
      • 2012-02-28
      • 1970-01-01
      • 2022-08-06
      • 2012-08-31
      • 2018-08-26
      相关资源
      最近更新 更多