每个ul's显示四个li's,但没有按要求返回结果


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

我想像

那样动态地显示<ul><li>
<ul>
  <li></li>
  </li></li>
  <li></li>
  <li></li>
</ul>
<ul>
  <li></li>
  </li></li>
  <li></li>
  <li></li>
</ul>

即每个<ul>有4个<li> s。

我想动态地显示这些。我尝试了下面的代码:

$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++;
}

返回的结果如下:

<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>
谁能帮我解决这个问题?

你在不应该的时候增加了$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>';
             }          
        }
}

哦,把逻辑和HTML输出混在一起,真是个坏主意;-)