如何使用jquery处理php循环元素

时间:2016-05-19 14:29:30

标签: javascript php jquery html ajax

我有一个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表单时的代码行。表格每次在每个帖子中打印用户提交的状态。

我该如何处理表格?我希望每次只在用户提交的特定帖子中打印我的评论。

1 个答案:

答案 0 :(得分:0)

显然$('。new-comment-line')是一个类选择器,你正在选择这个类中的所有元素。当您通过单击按钮启动功能时,我建议选择相对于单击按钮的正确元素。因此,在单击按钮后立即选择正确的元素:

var correctElement=$(this).siblings('.new-comment-line');

然后在需要时将html添加到其中:

correctElement.after(html);