单击时创建文本区域和多个元素以回复评论

Posted

技术标签:

【中文标题】单击时创建文本区域和多个元素以回复评论【英文标题】:Creating textarea and multiple elements on click for replying to a comment 【发布时间】:2018-06-05 08:03:10 【问题描述】:

目前,我有一个 php 脚本,它从数据库(com_text、name 等)获取 cmets,然后我回显它们,对于每个结果,我还回显一个带有隐藏文本区域(来自 CSS)和多个输入字段的 div @987654321 @,然后单击按钮(回复)我将带有 textarea 的 div 从隐藏更改为内联,以便用户可以键入和回复评论。 例如:

foreach($result as $r)
<div class='comments'>
echo"<p>$r['com_text']</p>";
<button> reply <button>
etc
</div>

<div class="reply_container>
<form>
<textarea></textarea>
<input type="hidden value="value_from_database" name="">
<input type="hidden value="" name="">
<button type="submit></button>
</form>
</div>

每条评论你都知道我还创建了一个隐藏的文本区域让人们回复。

我的问题是:我可以动态地做这样的事情,这样我就不必为每条评论都创建这个了吗?还是有更好的办法?

我的想法是创建另一个 PHP 脚本,用 Ajax 附加类似的东西,这是要走的路吗?

谢谢。

【问题讨论】:

我认为它要么非常简单,要么不那么简单,这取决于您计划如何存储、排序和重新显示对 cme​​ts 的回复。 只要您可以为每条评论附加某种唯一标识符,它不应该太复杂。我可能会为此使用稍微不同的结构,但这似乎很简单。 @I. R.R. cmets 使用 id 存储,并且 parent_id 为 NULL,并且回复 parent_id 使用它们所属的评论的 id 填充。 【参考方案1】:

所以我有一个回复 div 和多个 cmets。单击任何 .comment div 将触发我的侦听器,它将填充回复 div 中的相关字段并显示它。这是您正在寻找的东西吗?

$(".comments-pane").on("click", ".comment", function()
  var el = $(this);
  var elID = $(this).attr("id");
  var elText = $(this).text();
  
  $(".reply_container")
     .find("h3")
       .text("Your reply to "+elText).end()
     .find(".comment_id")
       .val(elID).end()
     .show();
   );
.reply_container 
  display: none;

.comment 
  border-bottom: 1px solid #999;
  padding: 5px;
  cursor: pointer;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="comments-pane">
  <div class="comment" id="4042311">
    The first one
  </div>
  <div class="comment" id="4042313">
    A follow-up comment
  </div>
  <div class="comment" id="4042317">
    Yet a third comment.
  </div>
</div>
  
  
<div class="reply_container">
  <h3></h3>
<form>
<input type="hidden" name="comment_id">
<input type="text" value="" name="reply_text">
<button type="submit">Reply</button>
</form>
</div>

【讨论】:

我认为这样的东西正是我想要的,我会尽快尝试,我会尽快回复你,谢谢。 酷。祝你好运。

以上是关于单击时创建文本区域和多个元素以回复评论的主要内容,如果未能解决你的问题,请参考以下文章

单击文本区域时,iOS 上的 reactstrap 模态关闭(仅在编辑时)

xd区域文本在哪

您如何一次将文本区域动态添加到页面?

多个使用ajax动态创建的同名按钮

我在做评论功能时学到的js一些思路

单击元素并编辑内容(如文本区域)