2011-06-23 21 views
1

我在一個頁面中有很多文本區域我通過一個名爲「comment」的鏈接獲得它們,所以她是我在php中創建代碼的想法,用戶點擊「評論」這是一個例子。當有人點擊它打開的鏈接時,控制文本區域

if(isset($ _GET ['comments'])){$ comments = $ _GET ['comments']; } if(!isset($ _ GET ['comments'])){ $ comments =「」; } 如果($評論== 「OK」){

     echo "<tr><td colspan='6' align='center'>"; 
         echo "<span class='rePost'>Re : &nbsp;</span><span 

類= 'blogerName'> $ blog->綽號「; 包括 」postComments.php「;回聲 」「;

     } ?> 

現在,當用戶點擊評論它只是包含註釋文本區 但這裏有在同一頁面上更多然後一個線程或我可以說,在同一頁上一個以上的職位,所以當用戶點擊在所有ot後的「評論」上她的帖子得到它下面的文本區域。 我在這裏需要的是,當用戶點擊帖子「1」的評論時,文本區域出現在帖子「1」下方,而不是2或3或此頁面上的任何其他人。 我希望我能讓你達到我想要的程度。

我認爲它可以通過java做,或者如果有人有其他想法請發佈給我。

+1

通過Java,你當然是指Javascript,這是完全不同的。 – kapa

+1

我認爲你的意思是JavaScript而不是java。 – spot35

+0

對不起,說Java而不是Javascript –

回答

0

你想要的最好是通過JavaScript實現,因爲我認爲你的意思是當你說「Java」時。正如評論者指出的那樣,這兩者並不相關。

基本上有兩種方法可以解決這個問題。

,你可以:

一)把你所有的文字區域與頁面一起在所有時間,但給他們display:none CSS類。您設置爲不可見的每個TextAreas或其周圍容器都需要具有唯一的ID。

然後,您可以使用JavaScript函數將另一個沒有display:none屬性的類指定給任何單個標識。

b)將文本區域應該放在後面的空元素放在後面,但也放入一個唯一的ID。您需要通過Javascript(AJAX)加載HTML。如果有很多可能的元素,並且將它們全部放在一起,那麼這太多了,這只是一個很好的選擇。

該網站是否使用任何JS框架,如jQuery?無論如何,這可能讓你在實現選擇一個以上的啓動:

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de"> 
    <head> 
     <meta charset="utf-8"/> 
     <style type="text/css"> 
     /*<![CDATA[*/ 
      .hidden 
      { 
       display:none; 
      } 
     /*]]>*/ 
     </style> 
     <script type="text/javascript"> 
     // <![CDATA[ 
     function hasClass(ele,cls) { 
      return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)')); 
     } 

     function addClass(ele,cls) { 
      if (!this.hasClass(ele,cls)) ele.className += " "+cls; 
     } 

     function removeClass(ele,cls) { 
      if (hasClass(ele,cls)) { 
       var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)'); 
       ele.className=ele.className.replace(reg,' '); 
      } 
     } 

     function showComment(id){ 
      var hideID=document.getElementById('c0'); 
      var i=0; 
      while (hideID!=null) 
      { 
       addClass(hideID,'hidden'); 
       i++; 
       hideID=document.getElementById('c'+i); 
      } 

      removeClass(document.getElementById(id),'hidden'); 
     } 
     // ]]> 
     </script> 
    </head> 
    <body> 
    <a href="javascript:showComment('c0');">show 1</a> 
    <a href="javascript:showComment('c1');">show 2</a> 
    <a href="javascript:showComment('c2');">show 3</a> 
    <div id="c0" class="hidden"> 
     <textarea rows="4" cols="98">txt1</textarea></div> 
    <div id="c1" class="hidden"> 
     <textarea rows="4" cols="98">txt2</textarea></div> 
    <div id="c2" class="hidden"> 
     <textarea rows="4" cols="98">txt3</textarea></div> 
</body></html> 

這不依賴於我們所展示elemets的IDS /隱藏是c0通過cNN是元素的計數顯示/隱藏減一個...

+0

你好嗎C.O.謝謝你的回答,但仍然有一個問題,我不知道頁面上有多少帖子,因爲這個頁面是動態頁面,所以在這裏你知道你有3個文本區域,所以你可以管理你的3個文本區域,但在這裏我不知道會有多少帖子。 –

+0

這是我對評論的鏈接 Comment的綽號; ?> post –

+0

你不需要知道有多少物品。在我所寫的內容中,可以是2(id'c0'到'c1')或者它可以是100(id'c0'到'c99'),只要它們都有一個與模式匹配的唯一標識即可你選。這就是爲什麼while循環 - 它會迭代,直到它找到的第一個id不指向DOM中的註釋。 –