0

3行ごとに表示するアイテムのリスト。3行ごとに、前の行でエコーされた3つのアイテムに関する詳細情報を含むドロワーを作成します。私が問題を抱えているのは、行が != 3 の場合、引き出しが表示されないことです。

たとえば、4 つのリスト アイテムがある場合、2 番目の行には 3 つのリスト アイテムがないため、2 番目の行のドロワーは表示されません。

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 ループが完了した後、最後にもう一度ドロワー コードを使用する必要があるため、2 回続けてドロワーを取得することはありません。

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

これは、リストがいつ生成されるかを制御すると仮定します。現在、正確に 3 行ある場合にのみ表示されます。かもね

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

これでできます。ANY 値に対して行を表示する必要があるため、$rows が数値かどうかを確認する必要があります。

于 2013-05-20T13:47:36.473 に答える