0

我要以 3 行显示的项目列表,在每行 3 之后创建一个抽屉,其中包含有关前一行回显的 3 个项目的更多信息。我遇到的问题是,如果该行是 != 3 抽屉将不会显示。

例如,如果我有 4 个列表项,则第二行抽屉不会显示,因为第二行没有 3 个列表项。

1-即使该行只有 1 个项目,我也希望抽屉回显。

我的代码:

<ul class="categories_list">
    <?php 

        $cat_sql = mysql_query("SELECT * FROM categories where feature=1") or die( mysql_error());
        $row_count = mysql_num_rows($cat_sql);

        $rows = 0;
        $cat_list = array();
        while($cat = mysql_fetch_assoc($cat_sql)){
    ?>
        <li class="animated">
            <a href="#<?php echo $cat['id'] ?>" class="main_buttons">
            <span class="category_list_titles">
                <table width="150" border="0" cellspacing="0" cellpadding="0">
                    <tr>
                        <td height="150" align="center" valign="middle"><?php echo $cat['name'] ?></td>
                    </tr>
                </table>
            </span>
            </a>
        </li>
    <?php
            $cat_list[] = array('id'=>$cat['id'], 'name'=>$cat['name']);
            $rows++;

            if($rows == 3) {
                echo '</ul>';
                $rows=0;
                echo '<ul class="categories_list">';
            }

        } 

    ?>
</ul>
4

2 回答 2

1

您想检查该行是否可被 3 整除,因此它将在每 3 行之后打印。

if($rows % 3 == 0)

然后,如果最后的 $rows 不能被 3 整除,您将希望在 while 循环完成后的最后再次使用抽屉代码,因此您不会连续两次获得抽屉代码。

if($rows % 3 != 0)

这样,如果你有 10 行,你将有 3 行,1 个抽屉,3 行,1 个抽屉,3 行,1 个抽屉,1 行,1 个抽屉。

于 2013-05-20T14:03:37.747 回答
0
                if($rows == 3)
                {
                    echo '</ul>';
                    $rows=0;
                    echo '<ul class="categories_list">';
                }

I'm going to assume that this controls when the list is generated, right now it only displays if there are exactly 3 rows. So maybe

                if(is_numeric($rows))
                {
                    echo '</ul>';
                    $rows=0;
                    echo '<ul class="categories_list">';
                }

this will do it. Since you want rows displayed for ANY value you simply need to see if $rows is a number.

于 2013-05-20T13:47:36.473 回答