2011-06-23 6 views
1

私は1ページに多くのテキスト領域を持っています。私はそれらを「コメント」と呼ばれるリンクで取得します。ユーザーが「コメント」をクリックすると、これはExです。開かれたリンクをクリックするとテキスト領域を制御する

if(isset($ _GET ['comments'])){$ comments = $ _GET ['comments']; } if(!isset($ _ GET ['comments'])){ $ comments = ""; } IF($コメント== "OK"){

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

クラス= 'blogerName'> $ blog-> BYNAME "; 含む "postComments.phpを"; エコー "";

ユーザーがコメントをクリックしたときに
     } ?> 

今それはちょうどコメントテキストエリア を含むが、ここが同じページにもっとして1つのスレッドであるか、私は同じページにもっとして1つのポストを言うことができるようにするとき、ユーザーがクリック投稿の「コメント」にすべてのot彼女の投稿はその下のテキストエリアを取得します。 ここで必要なのは、ユーザーがポスト "1"のコメントをクリックしたときに、テキストエリアがポスト "1"の下に表示され、2または3でないか、またはこのページの他のものが表示されない場合です。 私はあなたが望むところまであなたを得たことを願っています。

私はそれがjavaによって行うことができますか誰か他のアイデアを持っていると私にそれを投稿してください。

+1

Javaでは、あなたは確かにJavascriptを意味しますが、これはまったく異なっています。 – kapa

+1

私はあなたがJavaではなくJavaScriptを意味すると思います。 – spot35

+0

申し訳ありません、JavaとはJavaScriptではありません –

答えて

0

あなたが望むものはJavaScriptを使って実装するのが最良です。私はあなたが「Java」と言ったときのことを思いついたと思います。コメント者が指摘しているように、2つは関連していません。

これには基本的に2つの方法があります。

あなたができます

A)は、すべての回でのページと一緒にあなたのテキストエリアの全てを出したがdisplay:noneで彼らにCSSクラスを与えます。このように非表示に設定されているTextAreasまたはその周囲のコンテナのそれぞれには、固有のIDが必要です。

次に、javascript関数を使用して、display:noneプロパティを持たない別のクラスを任意の単一のidに割り当てることができます。

b)テキスト領域が後で移動するはずの空の要素を配置しますが、一意のIDも使用します。その後、Javascript(AJAX)を使用してHTMLをロードします。これは、多くの可能な要素があり、それらのすべてをいつでも外に出すことがあなたのページをあまりにも吹き飛ばす場合にのみ、良い選択です。

サイトでjQueryのようなJSフレームワークを使用していますか?これは、我々はNは/非表示のマイナスを示すために、要素の数であることをcNc0であることを表示/非表示されているelemetsのIDに依存しない

<!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> 

:とにかく、これはあなたが上記のオプションAを実行する際に始めるかもしれませんone ...

+0

あなたはどのようにC.Oですか。この回答はありがとうございますが、まだ1つの問題があります。このページは動的ページなので、どのくらいの投稿がページに表示されているのかわかりません。ここでは3つのテキストエリアがあるので、3つのテキストエリアを管理できます私はそこにどれくらいの投稿があるのか​​分からない。 –

+0

これはコメントにあるリンクです Comment<?php echo $ blog-> ByName; ?>投稿 –

+0

あなたはそこにいくつのアイテムがあるかを知る必要はありません。私が書いたところでは、2(id 'c0'から' c1')か100(id 'c0'から' c99')になる可能性があります。パターンに一意のIDを持っていれば問題ありません選んで。そのため、whileループはDOM内のコメントを指していない最初のIDが見つかるまで反復します。 –

関連する問題