контролировать текстовую область, когда кто-то нажимает на открываемую ссылку - PullRequest
1 голос
/ 23 июня 2011

У меня есть много текстовых областей на одной странице, я получаю их по ссылке, называемой «комментарий», поэтому она является идеей, что я создал код в php, который включает форму, когда пользователь нажимает «комментарий», это Ex.

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'> $ блог-> Byname "; включите "postComments.php"; эхо "";

                     } ?>

теперь, когда пользователь нажимает на комментарий, он просто включает текстовую область комментария но здесь на одной странице имеется более одной темы, или я могу сказать более одной записи на одной странице, поэтому, когда пользователь нажимает «комментарий» к записи 1, все остальные публикации получают текстовую область под ней. что мне нужно здесь, это когда пользователь нажимает на комментарий к записи «1», текстовая область появляется ниже записи «1», а не 2 или 3 или любой другой на этой странице. Надеюсь, я понял, что хочу.

Я думаю, что это можно сделать с помощью Java или, если у кого-то есть другая идея, пожалуйста, напишите мне.

1 Ответ

0 голосов
/ 23 июня 2011

То, что вы хотите, лучше всего реализовать с помощью JavaScript, как я думаю, вы имели в виду, когда говорили «Java». Как отметили комментаторы, эти два понятия не связаны.

В принципе, есть два способа, которыми вы можете подойти к этому.

Вы могли бы:

a) всегда выкладывайте все свои TextAreas вместе со страницей, но дайте им класс css с display:none. Каждый из TextAreas или окружающего его контейнера, который вы задали таким образом, чтобы он был невидимым, также должен иметь уникальный идентификатор.

Затем вы можете использовать функцию javascript для назначения другого класса, у которого нет свойства display:none, для какого-либо одного идентификатора.

b) вывести пустые элементы, куда текстовые области должны идти позже, но также с уникальным идентификатором. Затем вы загружаете HTML, когда это необходимо, с помощью Javascript (AJAX). Это хороший выбор, только если есть много возможных элементов, и если вы их все время выбрасываете, это слишком сильно взрывает вашу страницу.

Использует ли сайт какие-либо 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>

Это зависит от идентификаторов элементов, которые мы показываем / скрываем, чтобы быть от c0 до cN с N, являющимся количеством элементов, чтобы показать / скрыть минус один ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...