2016-05-12 68 views
0

我有两个页面,每个页面都带有3个选项卡。一页用于查看,另一页用于编辑。从Bootstrap获取活动标签ID并将其传递给PHP

当我从查看页面点击标签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> 

我如何实现这一目标?

+0

我已经分配了此$(”导航的选项卡。主动> a')。attr('href')给一个变量,但不知道如何继续这个。我也不确定这种方法是否正确。 – trollster

+0

你不需要它在PHP中,你只需要通过$ uid到html。我没有看到任何需要将活动选项卡传递给php的PHP端。相反,将uid var传递给js并使用js格式化链接并重定向。 – Wobbles

+0

UID在这里是别的。 – trollster

回答

1

你必须改变你的链接一点点,像这样:

<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

function AppendToUrl(url, key, value) { 
    var regex = /\?/i; 
    if (regex.test(url)) { 
     return url + "&" + key + "=" + value; 
    } else { 
     return url + "?" + key + "=" + value; 
    } 
} 
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的解决方案:)

0

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

就是这样。

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()中,但是这很容易。

-1

你应该做到这一点机智javasvript ... 当点击选项卡上获取其ID,然后根据需要设定的href任何元素...

相关问题