单击时创建文本区域和多个元素以回复评论
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 附加类似的东西,这是要走的路吗?
谢谢。
【问题讨论】:
我认为它要么非常简单,要么不那么简单,这取决于您计划如何存储、排序和重新显示对 cmets 的回复。 只要您可以为每条评论附加某种唯一标识符,它不应该太复杂。我可能会为此使用稍微不同的结构,但这似乎很简单。 @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>
【讨论】:
我认为这样的东西正是我想要的,我会尽快尝试,我会尽快回复你,谢谢。 酷。祝你好运。以上是关于单击时创建文本区域和多个元素以回复评论的主要内容,如果未能解决你的问题,请参考以下文章