You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CodeIgniter中跨页面锚点跳转至指定DIV显示数据的实现方法

在CodeIgniter中实现跨页面锚点跳转并打开指定DIV

问题需求

在CodeIgniter框架中,通过锚点标签实现从一个页面跳转至另一个页面,同时自动打开目标页面的指定DIV以展示对应数据。

当前代码示例

跳转发起页(第二页)代码:

<div class="accordion__item">
    <a href="<?= base_url(); ?>client/progress?id#$habit->id; ?> ">
    <div class="accordion__header collapsed" data-toggle="collapse" data-target="#bordered_no-gutter_collapseThree">
        <span class="accordion__header--text">按习惯查看进度</span>
        <span class="accordion__header--indicator style_two"></span>
    </div>
    </a>
    <div id="bordered_no-gutter_collapseThree" class="collapse accordion__body" data-parent="#accordion-four">
    <?php
    if (!empty($all_habits)) {
        foreach ($all_habits as $habit) { ?>
            <div class="accordion__header accordion" id="prog_habit" value="<?= $habit->id; ?>">
                <span class="accordion__header--text"></span><?= $habit->title; ?></span>
            </div>
        <?php }
    } ?>
    </div>
</div>

跳转目标页(第一页)代码:

<a href="<?= base_url() ?>client/progress?id=<?= $habit->id; ?> " class="btn btn-success shadow btn-xs sharp mr-1 mx-1"><i class="fa fa-eye"></i></a>

修正与实现方案

1. 修正锚点链接格式

确保链接正确传递参数并指定锚点:

  • 发起页链接修正:
<a href="<?= base_url('client/progress') ?>?id=<?= $habit->id ?>#bordered_no-gutter_collapseThree">

将参数id与锚点#bordered_no-gutter_collapseThree分开,保证参数传递和锚点定位同时生效。

  • 目标页链接修正:
<a href="<?= base_url('client/progress') ?>?id=<?= $habit->id ?>#bordered_no-gutter_collapseThree" class="btn btn-success shadow btn-xs sharp mr-1 mx-1"><i class="fa fa-eye"></i></a>

2. 目标页自动展开指定DIV

在目标页底部添加JS代码,页面加载时检测URL锚点并自动展开对应面板:

$(document).ready(function() {
    var targetDiv = window.location.hash;
    if (targetDiv === '#bordered_no-gutter_collapseThree') {
        // 适配Bootstrap折叠组件的展开逻辑
        $(targetDiv).removeClass('collapse').addClass('show');
        $(targetDiv).prev('.accordion__header').removeClass('collapsed');
    }
});

3. 优化循环内元素ID唯一性

发起页循环中的习惯项ID需保证唯一,避免冲突:

<?php if (!empty($all_habits)) {
    foreach ($all_habits as $habit) { ?>
        <div class="accordion__header accordion" id="prog_habit_<?= $habit->id; ?>" data-habit-id="<?= $habit->id; ?>">
            <span class="accordion__header--text"><?= $habit->title; ?></span>
        </div>
<?php }
} ?>

内容的提问来源于stack exchange,提问作者Prashant Sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 01:03:26