当有人点击它打开的链接时控制文本区域

时间:2011-06-23 09:33:31

标签: php javascript forms

我在一个页面中有很多文本区域我通过一个名为“comment”的链接获取它们所以她的想法是我在php中创建了一个包含表单的代码,当用户点击“comment”时这是一个Ex。< / p>

  

                  if(isset($ _ GET ['comments'])){$ comments = $ _GET ['comments'];                   }                   if(!isset($ _ GET ['comments'])){                       $ comments =“”;                       }                       if($ comments ==“ok”){

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

类= 'blogerName' &GT; $ blog-&GT;绰号“;   包括“postComments.php”;回声   “”;

                     } ?>

现在,当用户点击评论时,它只包含评论文本区域 但是这里在同一页面上有多个线程,或者我可以在同一页面上说多一个帖子,所以当用户点击帖子一上的“评论”时,所有其他帖子都会得到它下面的文本区域。 我需要的是当用户点击帖子“1”上的评论时,文本区域显示在帖子“1”下面而不是2或3或此页面上的任何其他文本区域。 我希望我能让你达到我想要的程度。

我认为可以通过java进行,或者如果有人有其他想法,请发布给我。

1 个答案:

答案 0 :(得分:0)

你想要的最好通过JavaScript实现,因为我认为你的意思是“Java”。正如评论者指出的那两者并不相关。

基本上有两种方法可以解决这个问题。

你可以:

a)随时将所有TextAreas与页面一起放出,但是给它们一个display:none的css类。您设置为以这种方式隐藏的每个TextAreas或其周围容器也需要具有唯一ID。

然后你可以使用javascript函数将另一个没有display:none属性的类分配给任何一个id。

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>

这确实依赖于我们展示/隐藏的元素的ID为c0cNN是要显示/隐藏的元素数量减去一个...