删除回复按钮仅发生一次,除非我刷新页面

时间:2018-05-07 18:06:08

标签: jquery ajax

我有评论表,每条评论都有回复。我设法对系统进行编程,当使用ajax php和jquery提交新评论时,评论会显示在回复列表中。现在我正在使用ajax php和jquery编写删除回复按钮。发生的事情是当我刷新页面时,我可以删除我点击的第一个删除按钮的回复评论!之后当我点击删除另一个回复评论时,没有任何反应。然后,如果我重新加载页面,我可以删除我点击的另一个回复评论,但每次刷新后不超过一个回复。我需要您的帮助,以便能够在不刷新页面的情况下删除多个回复

我将在jquery和ajax旁边发布代码,如果需要其他代码请告诉我

这是我的删除按钮的jquery和ajax代码:



// Delete a reply
$('.delete_board_reply_button').click(function() {
  var deleteReplyButtonParent = $(this).attr("id");
  var idArray = deleteReplyButtonParent.split("-");
  var boardReplyId = idArray[0];
  //console.log(boardReplyId);
  var url = "widgets/delete_board_reply.php";

  $.ajax({
    url: url,
    type: "POST",
    data: {
      reply_id: boardReplyId
    },
    success: function(data) {
      // here i make a custom pop up alert
    },
    error: function(jqXHR, textStatus, errorThrown) {
      console.log(jqXHR);
    }
  });

  var commentId_attr = $(this).parent().parent().attr("id");
  var commentArray = commentId_attr.split("-");
  var boardCommentId = commentArray[0];
  console.log(boardCommentId);
  loadBoardReplies(boardCommentId);

});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="reply_comment_div" id="<?php echo $reply_id;?>-boardReplyDelete">
  <a href="profile.php?user_id=<?php echo (int)$reply_user_id;?>" class="board_comments_div_picture">
							<img src="
							<?php 
								$profile_image = $reply_user_data['profile_picture']; 
								$profile_image_thumb = "uploaded_pictures/profile/$reply_user_id/" . $reply_user_id . "small.png";
								
								if ($profile_image == "") {
									if ($comment_user_data['gender'] == "Male"){
										echo "images/ProfilePicMale.png";
									} else {
										echo "images/ProfilePicFemale.png";
									}
								} else {
									echo $profile_image_thumb;
								}
							
							
						  ?>" width="50px" height="50px" alt="" title=""/>
						</a>

  <a href="profile.php?user_id=<?php echo (int)$reply_user_id;?>" class="board_comments_reply_link">
    <?php echo ucfirst(htmlentities($reply_user_data['first_name'])) . " " . ucfirst(htmlentities($reply_user_data['last_name']));?>
  </a>
  <?php 
						if ($user_id == $_SESSION['user_id']){ 
					?>
  <a href="edit_comment_board.php?comment_id=<?php echo $reply_comment_id;?>" class="edit_comment_button_board">Edit</a>
  <input type="button" class="delete_board_reply_button" value="Delete" name="delete_board_reply_button" id="<?php echo $reply_id;?>-replyId" />
  <?php 
						}
					?>
  <div class="board_comment_submited_on">
    submitted
    <?php echo time_of_post($reply_timestamp);?>
  </div>
  <span class="comment_content_span"><?php echo nl2br($reply_text);?></span>
</div>
&#13;
&#13;
&#13;

更新 删除按钮jquery代码我做了一些逐行调查粘贴所以我发现当我添加这行时出现问题

loadBoardReplies(boardCommentId);

参考此功能:

    function loadBoardReplies (value) {
    var url = "widgets/board_reply_fetch.php";

    $.ajax({
        url: url, 
        method: "POST",
        data: {
            comment_id: value
        },
        success: function(data){
            $("#"+value+"-").html(data);
        },
        error: function(jqXHR, textStatus, errorThrown){
            console.log(jqXHR);
        }
    });
}

但我似乎无法告诉现在的问题是什么!如果我对此行发表评论,我可以删除任何我想要的回复,但回复未获得更新,删除的回复将保留在DOM中

1 个答案:

答案 0 :(得分:0)

你确定吗?

var commentId_attr = $(this).parent().parent().attr("id");

在HTML结构中似乎是$(this).parent() == <div>。你试过那个吗?

此致