从Bootstrap获取活动选项卡ID并将其传递给PHP

时间:2016-05-12 09:43:52

标签: javascript php jquery twitter-bootstrap codeigniter

我有两个页面,每个页面有3个标签。一页用于查看,另一页用于编辑。

当我从视图页面单击选项卡2并按“编辑”按钮时,我希望重定向到“编辑”页面中的选项卡2。同样,对于其他标签也是如此。从视图中选项卡1将我带到编辑中的选项卡1,从视图中选项卡3将我带到编辑中的选项卡3。

所以我想做的是,从3个选项卡中获取活动选项卡,获取href值,存储href值,以便我可以在同一页面中将其用作php变量(或任何其他方式)并传递它在按钮链接上正确重定向。

我正在使用Bootstrap和Codeigniter。

从活动标签中提取href;我发现了这个:

$('.nav-tabs .active > a').attr('href')

这将为我提供相关的href名称,如tab1,tab2,tab3:

<li class="active"><a href="#tab1" data-toggle="tab">Tab 1</a></li>
<li><a href="#tab2" data-toggle="tab">Tab 2</a></li>
<li><a href="#tab3" data-toggle="tab">Tab 3</a></li>

我的PHP代码中有一行代码:

<a href="<?= site_url('backend/edit/'. $uid . '<GET THE ACTIVE TAB HREF VALUE HERE>') ?>">Edit</a>

我如何实现这一目标?

4 个答案:

答案 0 :(得分:1)

您必须稍微更改链接,例如:

expected = {
    'id': 1,
    'name': ...,
    ...,
    'items': [{
        'id': ..,
        'url': ...,
    }]
}

单击选项卡时添加此项,其中:

<a id="EditLink" href="<?= site_url('backend/edit/'. $uid) ?>">Edit</a>

使用函数var tabValue = $(".nav-tabs .active > a").attr("href"); var url = $("#EditLink").attr("href"); $("#EditLink").attr("href", AppendToUrl(url, "tab", tabValue));

AppendToUrl

答案 1 :(得分:0)

你做不到。活动选项卡是客户端,PHP是服务器端。您最终可以使用javascript发送AJAX查询:

$.ajax({
  method: "POST",
  url: "some.php",
  data: { active_tab_id: jquery_function_returning_id() }
})
  .done(function( url ) {
    $("#id_of_element_u_want_inject_href").attr("href", url)
  });

Some.php:

<?php 
$data = $_POST['data'];
echo site_url('backend/edit/'. $uid . $data['active_tab_id']);
session_start();
$_SESSION['variable']=$data['active_tab_id'];
?>

您应该能够在会话中访问数据。

最好是完整的JavaScript解决方案:)

答案 2 :(得分:0)

通过向下传递uid而不是选择的选项卡来处理这个问题。

像这样。

var uid = <?PHP echo $uid; ?>;
function getHref() {
    var selTab = $('.nav-tabs .active > a').attr('href');
    var retHref = 'backend/edit/' + uid + selTab;
    return retHref
}

可能需要一个PHP脚本来将其转换为site_url()无论做什么,但这很容易。

答案 3 :(得分:-1)

你应该实现这个机智javasvript ... 单击选项卡时获取其ID,然后为任何元素设置所需的href ...