简体   繁体   English

根据要求显示每公升4 li的不返回结果

[英]Displaying four li's per ul's not returning result as required

I want to display <ul> and <li> dynamically like 我想动态显示<ul><li>

<ul>
  <li></li>
  </li></li>
  <li></li>
  <li></li>
</ul>

<ul>
  <li></li>
  </li></li>
  <li></li>
  <li></li>
</ul>

ie, each <ul> with 4 <li> s. 即,每个<ul>具有4个<li>

I want to display these dynamically. 我想动态显示这些。 I tried with the following code: 我尝试使用以下代码:

$i=0;
foreach($query->result() as $inboxresult)
{
        if($inboxquery->num_rows()>0)
        {
            if($i%4==0)
            {
                echo '<ul class="msgdisplayul item">';
            }
            $parentid=$inboxresult->id;
            echo '<li class="msgdisplayli">
             <div class="msgfullarea">
               <div class="displyusrimge">
                   <input type="hidden" id="status'.$inboxresult->id.'">
                   <a href="">';
                    echo '<img src="'.base_url().'images/friend_avatar_default.jpg" alt="Default User Avatar" />';
                    echo '</a>
                </div> 
             </div>
             <div class="clear"></div>
             </li>'; 
             if($i%4==0 && $i!=0)
             {
                echo '</ul>';
             }          
        }
        $i++;
}

This is returning result as shown below: 返回结果如下所示:

<ul class="msgdisplayul item">
  <li class="msgdisplayli">
    <div class="msgfullarea">
        <div class="displyusrimge">
            <input type="hidden" id="status10">
            <a href=""><img src="http://localhost:8080/workspace/project/images/friend_avatar_default.jpg" alt=" Default User Avatar"></a>
        </div>
    </div>
    <div class="clear"></div>
   </li>
   <li class="msgdisplayli">
     <div class="msgfullarea">
         <div class="displyusrimge">
             <input type="hidden" id="status7">
              <a href=""><img src="http://localhost:8080/workspace/project/images/friend_avatar_default.jpg" alt=" Default User Avatar"></a>
          </div>
    </div>
    <div class="clear"></div>
  </li>
  <ul class="msgdisplayul item"><li class="msgdisplayli">
    <div class="msgfullarea">
        <div class="displyusrimge">
            <input type="hidden" id="status1">
            <a href=""><img src="http://localhost:8080/workspace/project/images/friend_avatar_default.jpg" alt="Default User Avatar"></a>
         </div>
    </div>
    <div class="clear"></div>
   </li>
   </ul>
</ul>

Can anybody help me to solve this? 有人可以帮我解决这个问题吗? Thanks in advance. 提前致谢。

You're incrementing $i when you shouldn't... When you don't print li elements, you should not increment $i: 在不应该增加$ i的情况下...当不打印li元素时,不应增加$ i的内容:

$i = 0;
foreach ($query->result() as $inboxresult)
{
        if ($inboxquery->num_rows()>0)
        {
            if ($i % 4 == 0)
            {
                echo '<ul class="msgdisplayul item">';
            }
            $parentid = $inboxresult->id;
            echo '<li class="msgdisplayli">
             <div class="msgfullarea">
               <div class="displyusrimge">
                   <input type="hidden" id="status'.$inboxresult->id.'">
                   <a href="">';
                    echo '<img src="'.base_url().'images/friend_avatar_default.jpg" alt="Default User Avatar" />';
                    echo '</a>
                </div> 
             </div>
             <div class="clear"></div>
             </li>'; 
             // if you increment $i here, you don't need to worry if $i = 0 to close the ul
             $i++;
             if ($i % 4 == 0)
             {
                echo '</ul>';
             }          
        }
}

Oh, and mixing logic with HTML output, very bad idea ;-) 哦,将逻辑与HTML输出混合在一起,这是一个很糟糕的主意;-)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM