【问题标题】:Getting Superfish jQuery plugin to work dynamically with several loops in PHP让 Superfish jQuery 插件与 PHP 中的多个循环一起动态工作
【发布时间】:2010-09-14 10:22:07
【问题描述】:

希望一些聪明的小伙子或小伙子可以帮助我弄清楚以下代码的逻辑。

我已经开始使用 superfish jquery 插件进行导航,并且使用静态链接使代码工作正常且轻松,但是当我尝试将其更改为动态链接时,我无法让二级标签正常工作;仅在找到第二级链接时显示,然后在第二级链接从数据库中写出之前仅显示一次。

我希望我已经明确了这个问题。如果我没有,请道歉。

<ul class="sf-menu">
        <?php
            // A varible that increments on every loop of the below "while" statement
            $count == 0;

            $result = mysql_query("SELECT * FROM web_navbar_links WHERE link_parent='1' AND visible='1' ORDER BY position ASC");
            while ($row = mysql_fetch_object($result)) {
                $parentID    = $row->id;
                $parentLevel = $row->slug;
                // Increment the counter varible by one
                $count++;

                echo "<li";
                    switch ($parentLevel) {
                        case "business":
                            echo " id='business'";
                            break;

                        case "education":
                            echo " id='education'";
                            break;

                        case "consumer":
                            echo " id='consumer'";
                            break;
                    }
                    echo "><a>".ucwords(trim($row->link_name))."</a>";

                    $result2 = mysql_query("SELECT * FROM web_navbar_links WHERE link_child='1' AND parent_relationID='".$parentID."' AND visible='1' ORDER BY position ASC");
                    if ($row2 = mysql_fetch_object($result2)) {
                        echo "<ul>"; //PROBLEM LIES HERE!! ATM THE <UL> WRITES ONCE BUT THE LOOP ONLY READS BACK THE LAST ENTRY FROMT HE db.
                        while ($row2 = mysql_fetch_object($result2)) {
                            echo "<li><a href='http://". ROOT . ADMIN . SECTIONS . TEMPLATES . $row2->link_href."?".$row2->slug."=".$row2->slug."' title='".$row2->link_title."'>".$row2->link_name."</a>";
                                echo "<ul>";
                                    echo "<li><a href='#'>blah</a></li>";
                                echo "</ul>";
                            echo "</li>";
                        }
                        echo "</ul>";
                    }
                echo "</li>";

                if ($count < 3) {
                    echo "<li class='breaker'></li>";
                }
                else {
                    echo "";
                }
            }
        ?>
    </ul>

【问题讨论】:

    标签: mysql jquery-plugins php4 superfish


    【解决方案1】:

    我认为问题出在这一行:

    if ($row2 = mysql_fetch_object($result2)) {
    

    这将使记录计数器向前移动,所以下次调用时:

    while ($row2 = mysql_fetch_object($result2)) {
    

    $row2 将填充第二行。由于您没有在两条突出显示的行之间的任何位置使用第一行,因此您将丢失它。

    我建议调用 mysql_num_rows($result2) 来获取返回的行数,而不是 if 语句中的第一个 mysql_fetch_object($result2)。

                    $result2 = mysql_query("SELECT * FROM web_navbar_links WHERE link_child='1' AND parent_relationID='".$parentID."' AND visible='1' ORDER BY position ASC");
                    if (mysql_num_rows($result2) > 0) {
                        echo "<ul>"; //PROBLEM LIES HERE!! ATM THE <UL> WRITES ONCE BUT THE LOOP ONLY READS BACK THE LAST ENTRY FROMT HE db.
                        while ($row2 = mysql_fetch_object($result2)) {
                            echo "<li><a href='http://". ROOT . ADMIN . SECTIONS . TEMPLATES . $row2->link_href."?".$row2->slug."=".$row2->slug."' title='".$row2->link_title."'>".$row2->link_name."</a>";
                                echo "<ul>";
                                    echo "<li><a href='#'>blah</a></li>";
                                echo "</ul>";
                            echo "</li>";
                        }
                        echo "</ul>";
                    }
    

    【讨论】:

    • 完美解决Gus,感谢您的知识和帮助:D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-04
    • 1970-01-01
    • 2012-05-09
    • 1970-01-01
    • 1970-01-01
    • 2013-09-23
    相关资源
    最近更新 更多