繁体   English   中英

页面刷新后显示活动类别、子类别

[英]Display active category, sub category after page refresh

我试图在页面重新加载后显示活动类别首先我尝试使用 URL 和 PHP,但它不适用于子类别现在我试图通过使用 JavaScript 或 jQuery 来实现这一点。 下面是我的PHP代码

function multilevel($connection, $parent = 0, $cat_id)
{

    $side = '';
    $sql = '';
    if ($parent == 0) {
        $sql =  "SELECT * FROM `categorys` WHERE parent_id = 0 ANd  cats_status = 1 ORDER BY cats_name ASC";
    } else {
        $sql =  "SELECT * FROM `categorys` WHERE parent_id = $parent ANd  cats_status = 1 ORDER BY cats_name ASC";
    }

    $result =  mysqli_query($connection, $sql);
    // $count = mysqli_num_rows($result);

    while ($row = mysqli_fetch_assoc($result)) {
        if ($row['parent_id'] == 0) {
            $side .= "<li class='categorys'>
                        <h3>
                            <a href='?cat_id=" . $row['cats_id'] . "' id='" . $row['cats_id'] . "' class='nav-link'>" . $row['cats_name'] . "</a>
                        </h3>";
        } else {
            $side .= "<li class='categorys'>
                        <h3>
                            <a href='?cat_id=" . $row['cats_id'] . "' id='" . $row['cats_id'] . "' class='nav-link'>" . $row['cats_name'] . "</a>
                        </h3>";
        }

        $side .= "<ul class='nav nav-link collapse' id='submenu'>" . multilevel($connection, $row['cats_id'], $row['cats_id']) . "</ul>";
        $side .= "</li>";
    }

    return $side;
}
$cat_id = get_save_data($connection, $_GET['cat_id']);
echo multilevel($connection, 0, $cat_id);

这是jQuery代码

$(document).ready(function() {
    $("#accordian a").click(function() {
        var link = $(this);
        var closest_ul = link.closest("ul");
        var parallel_active_links = closest_ul.find(".active")
        var closest_li = link.closest("li");
        var link_status = closest_li.hasClass("active");
        var count = 0;

        closest_ul.find("ul").slideUp(function() {
            if (++count == closest_ul.find("ul").length)
                parallel_active_links.removeClass("active");
        });

        if (!link_status) {
            closest_li.children("ul").slideDown();
            closest_li.addClass("active");
        }
    })
})

$(document).ready(function() {
    $(".nav-item a").on("click", function() {
        $(".nav-item.active").removeClass("active");
        $(this).parent().addClass("active");
    }).filter(function() {
        return window.location.href.indexOf($(this).attr('href').trim()) > -1;
    }).click();
});

通过使用 PHP,我无法显示子类别处于活动状态,这就是我试图通过 jQuery 实现这一目标的原因。 有没有办法使用 URL 参数或没有 URL 来显示活动类别

如果您的问题是:如何获取 url 中存在的查询参数,您可以使用 $_GET 超全局变量。 这是一个您可以检查的数组(更多信息在这里: https ://www.php.net/manual/en/reserved.variables.get.php)。

请注意,您的用户可以在 url 中放置任何字符串(因此根据您的用户在那里输入的内容运行数据库查询是不安全的。但是好的,我想在您的情况下它是安全的,您只需要进行比较)

暂无
暂无

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

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