如何生成<li>?</li>的动态ID

时间:2012-08-14 06:01:30

标签: php html loops auto-increment

我有一个包含UL和LI的div。在这里我想生成那个LI的动态ID。 现在我使用了静态HTML:

<li id= "nav-fragment-1">
<li id= "nav-fragment-2">
<li id= "nav-fragment-3">
<li id= "nav-fragment-4"> 

我想要相同的输出,但动态。现在我有点困惑,我怎么会得到这个?

<div id="featured">
  <ul class="ui-tabs-nav">
<?php $i = 0; foreach($posts as $post): ?>
   <li class="ui-tabs-nav-item ui-tabs-selected" id="nav-fragment-1">
    <a href="<?php //echo $i++;) ?>"><span><?php echo $this->escape($post['title']) ?>
<?php if($leads): ?>
      <p><?php echo $this->maxText($post['content'], 50, '...', true) ?></p>
    <?php endif ?></span>
  <img class="post-image" src="<?php echo $this->postImage($post['image'], '50px', '50px') ?>" alt="" title="<?php echo $this->escape($post['title']) ?>"/></a>
 </li>
<?php endforeach ?>
</ul>
</div>

6 个答案:

答案 0 :(得分:1)

此处需要更多详细信息,但您可以使用简单的字符串函数:

<div id="featured">
 <ul class="ui-tabs-nav">
  <?php $i = 0; foreach($posts as $post): ?>
  <li class="ui-tabs-nav-item ui-tabs-selected" id="nav-fragment-<?php echo ++$i;?>">
  <a href="<?php //echo $i++;) ?>"><span><?php echo $this->escape($post['title']) ?>
  <?php if($leads): ?>
  <p><?php echo $this->maxText($post['content'], 50, '...', true) ?></p>
  <?php endif ?></span>
  <img class="post-image" src="<?php echo $this->postImage($post['image'], '50px', '50px') ?>" alt="" title="<?php echo $this->escape($post['title']) ?>"/></a>
 </li>
<?php endforeach ?>
</ul>
</div>

这应该为您的<li> nav-fragment-1,2,3提供不同的ID

答案 1 :(得分:1)

注意在关闭foreach循环之前递增$i,以便每次重复循环时id li递增1。

<?php $i = 0; foreach($posts as $post): ?>
   <li class="ui-tabs-nav-item ui-tabs-selected" id="nav-fragment-<?php echo $i + 1; ?>">
    <a href="#"><span><?php echo $this->escape($post['title']) ?>
<?php if($leads): ?>
      <p><?php echo $this->maxText($post['content'], 50, '...', true) ?></p>
    <?php endif ?></span>
  <img class="post-image" src="<?php echo $this->postImage($post['image'], '50px', '50px') ?>" alt="" title="<?php echo $this->escape($post['title']) ?>"/></a>
 </li>

<?php $i++; // important
endforeach ?>

答案 2 :(得分:1)

改变这个:

<li class="ui-tabs-nav-item ui-tabs-selected" id="nav-fragment-1">

为:

<li class="ui-tabs-nav-item ui-tabs-selected" id="nav-fragment-<?php echo ++$i; ?>">

答案 3 :(得分:0)

<li class="ui-tabs-nav-item ui-tabs-selected" id="nav-fragment-<?php echo $i ?>">

不要忘记在循环结束时增加$ i

答案 4 :(得分:0)

更改

<li class='ui-tabs-nav-item ui-tabs-selected' id='nav-fragment-1'>

<?php echo "<li class='ui-tabs-nav-item ui-tabs-selected' id='nav-fragment-$i'>"; ?>

答案 5 :(得分:0)

如果您想要<li>nav-fragment-0,......,只需将nav-fragment-1标记替换为:

<li class="ui-tabs-nav-item ui-tabs-selected" id="nav-fragment-<?php echo $i++; ?>">