-2

大家好,我是 php 新手,正在做一个项目。我的问题是我正在查看页面并使用 while 循环从 3 个表中获取数据。

问题是我想创建评论回复系统。我在循环中使用文本区域进行评论并在按钮单击时显示文本区域,但是当我单击按钮时,每个文本区域都变得可见,这是我不想要的。我认为问题是由于while循环。请给我一个正确的想法。提前谢谢你。

php部分:

<div class="feedback-list">

                                                                                <!--img class="doc-img"src="img/doc-img.png" alt="tempimg"   height="100"                 width="100"/>
    <div class="feedback-header"-->              
          <?php
            while($row1=mysql_fetch_array($result1))
             {
                $username1=$row1['username'];
                $rtitle=$row1['reviewtitle'];
                 $rexperience=$row1['experience'];

                                 echo '<div  class="feedback"><img class="doc-img" src="img/doc-img.png" alt="temp img" height="100" width="100"/><div class="feedback-header">Rivew by <a href="#"> '.$username1.'</a>
                                <span class="stars" id="star1"><img src="img/stars.png"/></span>
                            </div>
                            <p> '.$rtitle.'</p><br/>
                            <p> '.$rexperience.'</p>



                                                                        <form action="submitcomment.php"  method="post" name="frms">
            <!--button type="submit" onclick="showCommentBox()">Reply</button><br/-->
          <input type="button" value="Reply" onclick="showCommentBox('.$row1['reviewid'].')"><br/>
          <div class="hidden" id="comment">
            <!--p>Comments and suggestions:<br><textarea name="comments" rows="3" cols="30" ></textarea><br><br>
              <input type="submit" name="sub" value="Confirm"></p-->
            </div>
            </form>



                            <span class="read-more">Read      More</span>
                            <span class="added-by">added on 25 March</span>
                        </div>';}?>

脚本:

 <script type="text/javascript">
         function showCommentBox(x){
          //alert(x);
         var div=document.getElementById('comment');

         div.className='visible';

         document.getElementById("comment").innerHTML =
   '<br/><textarea maxlength="5000" cols="30" rows="3" name="comments"></textarea>' + 
   '<input type="submit" name="sub" value="Confirm">';
          }
    </script>
4

1 回答 1

0

您所有的评论框都具有相同的 DOM ID:

  <div class="hidden" id="comment">
                      ^^^^^^^^^^^^

这是不允许的。ID 在整个页面中必须是唯一的。因此,getElementById()只会返回一个匹配的元素,这通常是它找到的第一个匹配元素 - 继续搜索只有一个可以存在的东西是没有意义的,对吧?

你可能想要更多类似的东西

 <div class="hidden" id="comment{$id}">

 <button onclick="showComment($id);" >



 function showComment(id) {
     foo = document.getElementById('comment' + id);
 }
于 2014-04-11T20:34:50.163 回答