我有一个HTML表单,在插入查询成功后将使用JQuery Ajax以HTML格式返回。
comment.php
$post_id=$_POST['id'];
mysql_query("INSERT INTO comment(comment,post_id,)VALUES('$comment','$post_id')");
if(!mysql_errno()){
?>
<p><?php echo $comment; ?></p>
这是我的JQuery代码,它将在插入查询成功后发送请求和值并返回HTML表单。
的index.php
// on post comment click
$('.bt-add-com').click(function(){
var theCom=$(this).siblings('.the-new-com');
if(!theCom.val()){
alert('You need to write a comment!');
}else{
var post_id=$(this).parents(".post_id").attr("id");
$.ajax({
type: "POST",
url: "comment.php",
data: "act=add-com&comment="+theCom.val()+"&id="+post_id,
success: function(html){
theCom.val('');
$('.the-new-com').hide('fast', function(){
$('.new-comment-line').show('fast');
$('.new-comment-line').after(html);
});
}
});
}
});
这是我的表格。它每次都在用户提交的帖子循环中运行。
<form action="" method="POST" class="post_id" id="<?php echo $post_id; ?>">
<span>Write a comment ...</span>
</div>
<div class="new-comment-line"></div><----here is a line before the comment initiates..--->
<textarea class="the-new-com"></textarea>
<div class="bt-add-com">Post comment</div>
</form>
现在我的问题是我的所有代码都能很好地工作,除了最后几行JQuery代码。
$('.new-comment-line').after(html);
在Ajax请求出现问题后,我的表单从comment.php返回HTML表单时的代码行。表格每次在每个帖子中打印用户提交的状态。
我该如何处理表格?我希望每次只在用户提交的特定帖子中打印我的评论。
答案 0 :(得分:0)
显然$('。new-comment-line')是一个类选择器,你正在选择这个类中的所有元素。当您通过单击按钮启动功能时,我建议选择相对于单击按钮的正确元素。因此,在单击按钮后立即选择正确的元素:
var correctElement=$(this).siblings('.new-comment-line');
然后在需要时将html添加到其中:
correctElement.after(html);