2009-11-04 31 views
0

我在我的頁面上有這些標籤在PHP中Tabbing?

Equ |稅收|平衡|債務|基金| ETF |鍍金.......

然後還有這些選項卡下方的空間。當用戶點擊這些標籤則對應於這些標籤數據必須被顯示在空間不改變,當我點擊惡趣那麼它的數據將顯示在該空間中,如果我點擊稅那麼它的數據page.Like的網址將顯示在同一個空間中,就像它覆蓋了以前的數據一樣。必須顯示的數據是使用php計算的。 那麼什麼是這樣做的使用PHP或JavaScript最簡單的方法???

一些編碼幫助將這裏讚賞。

編輯: 看,我知道這是可以使用JavaScript來實現,但有要顯示的數據是在PHP變量。現在如何分配PHP變量的JavaScript ????

<script type="text/javascript"> 
function showhide(ref) 
{ 
    document.getElementById('mf').innerHTML= HERE I WANT A PHP VARIABLE; 
} 
</script> 

如何發送我的pfp變量在onclick事件,以便他們可以在函數中使用?

+1

你嘗試過什麼?沒有大量的額外信息,爲你提供代碼幾乎是不可能的。 – 2009-11-04 04:31:31

+0

從查看您的問題和您的後續評論,我得到的印象是您對PHP和JavaScript如何交互(即他們沒有)的常見誤解。一旦顯示頁面,PHP就完成了所有的工作。改變PHP顯示內容的唯一方法是向服務器發出一個新的HTTP請求(即請求一個URL)。 Javascript(使用AJAX)允許你隱藏這個請求,並用新信息更新頁面,但是我個人會使用下面給出的CSS/javascript選項之一,並簡單地顯示/隱藏PHP生成的每一位。 – MalphasWats 2009-11-04 15:38:47

回答

4

您可以使用CSS和/或Javascript來幫你做的伎倆。使用JavaScript標籤

http://edeverett.co.uk/experiments/css_only_tabs.html

例:只使用CSS標籤

http://jqueryui.com/demos/tabs/

編輯 作爲回覆您的編輯:

編輯:看,我知道這是可以使用JavaScript來實現,但有要顯示的數據是在PHP變量。現在如何分配PHP變量的JavaScript ????

同步進行服務器端的一切,你可以注入的運算結果到您的javascript:

function showhide(ref) 
{ 
    document.getElementById('mf').innerHTML= '<?php echo $variable; ?>'; 
} 

一個更好的做法是使用AJAX。

+0

我看過一些在PHP寫作時犯下的令人髮指的罪行javascript正在寫html。它真的會讓事情變得過於複雜,並最終導致HTML文檔中的內容全部出現。 – MalphasWats 2009-11-04 15:40:58

+0

我完全同意你@MalphasWats,它就像另一個維度的意大利麪代碼。我提供它作爲一個可行的解決方案,可能正是@developer正在尋找的。 我也在尋找另一種方法將服務器端計算值放入JavaScript中,無需異步請求調用。 – 2009-11-04 22:08:21

1

你必須使用ajax

你可以使用一些庫,例如xajax的,mootools的jquery的或。

UPD: 實施例與mootools的: 第一個創建單獨的PHP文件,返回文本acording到標籤(createContent中。PHP) 然後在javascript:

function menuClick(var i) 
{ 
    var request1 = new Request.HTML({ url: 'createContent.php?i='+i, 
     onSuccess: function(html) { 
      $('div1').set('text', ''); 
      $('div1').adopt(html); 
      $('div1').innerHTML = ''; 
     }, 
     onFailure: function() { 
      $('div1').set('text', ''); 
      $('div1').innerHTML = ''; 
     } 
    }); 

    request1.send(); 
    return false; 
} 

在HTML中的onclick添加用該函數標籤:

<a href="#" onclick="return menuClick(1);">EQU</a> 
+1

你並不需要ajax。您可以在加載頁面時加載所有內容,然後讓標籤適當地顯示/隱藏內容。在這種情況下不需要Ajax。 – Galen 2009-11-04 04:47:17

+0

你是對的,但在這種情況下,頁面可能是太重了。 – 2009-11-04 04:55:11

+0

AJAX不會讓被顯示在它的源我的數據在我的需要是顯示其源數據:-( – developer 2009-11-04 08:00:37

0

顯示行爲將是一個客戶端的東西,因爲它是東西(一些邏輯),其發生在瀏覽器上。如前所述,你將不得不使用javascript/css來做到這一點。

在編碼的幫助方面,你可能會有所幫助: http://stilbuero.de/jquery/tabs_3/

編輯

所以,如果你想要把一個PHP變量存在,這是你做什麼,使這個「.php」頁面:

<script type="text/javascript"> 
function showhide(ref) 
{ 
    document.getElementById('mf').innerHTML= <?php echo $VAR ?>; 
} 
</script> 

當然,這裏假設你已經在渲染頁面之前計算了變量。如果變量的值取決於頁面上的某些動作(例如,在文本框中輸入一些文本並點擊按鈕 - 就像搜索框一樣),那麼您必須爲此使用AJAX。你可以通過向php頁面發送POST請求的GET請求來實現,然後顯示該頁面的內容。我上面發佈的鏈接有一個AJAX選項卡的例子,你可以看看這個。

+0

看,我知道這是可以使用JavaScript來實現,但有要顯示的數據是在PHP變量。現在如何將PHP變量賦值給JavaScript ???? – developer 2009-11-04 04:55:06

+0

@developer:我已經更新了我的答案回答你的問題編輯本 – Aishwar 2009-11-04 16:56:18

2

這其實很簡單。您不需要在標籤點擊上動態加載數據。您可以在加載頁面時一次加載數據,然後根據需要顯示/隱藏。

一個簡單的例子...

<ul id="#nav"> 
<li><a href="#" id="equ-tab">equ</a></li> 
<li><a href="#" id="tax-tab">tax</a></li> 
<li><a href="#" id="bal-tab">balanced</a></li> 
</ul> 

<div id="content"> 
    <div id="content-equ">equ content</div> 
    <div id="content-tax">tax content</div> 
    <div id="content-bal">balanced content</div> 
</div> 

假設EQU是默認的內容。當頁面加載隱藏除EQU以外的所有其他div(使用CSS或優選JavaScript)

使用javascript(jQuery推薦)當單擊標籤時隱藏所有內容,然後顯示標籤內容。

$('#nav a').click(function(){ // when a nav link is clicked 
    $('#content div').hide(); // hide all content 
    $('#content #content-'+$(this).attr('id')).show(); // show content that has id #content-<tabID> 
}); 

代碼並不意味着OT被複制並粘貼,我很快就打字出來作爲一個例子

+0

我都知道,但我已經編輯我的問題,請看到 – developer 2009-11-04 05:01:02

+0

我沒有看到任何改變我的答案。 =) – Galen 2009-11-04 05:21:40

+0

就個人而言,我覺得這是做的,只要你只得到了少量的每個選項卡中信息的最佳方式。一旦你開始頁面和東西,在每個選項卡正在進行的頁面,你頁面加載時間都瘋了,你就好得多使用基於AJAX方法就去拿你真正需要每次都顯示位。 – MalphasWats 2009-11-04 15:42:35