2016-05-12 65 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任何元素...

相關問題