Ajax在同一页面上不能用于多种形式

时间:2013-03-04 18:37:17

标签: ajax codeigniter jquery

在视图中我重复相同的形式并通过ajax发布,我关注的是ajax正在为第一种形式工作但不能从第二种形式工作,下面是使用的代码。

<form action="http://localhost/comment" method="post" accept-charset="utf-8">
<input type="text" name="comment_text" value="" id="comment_text" size="35" class="comment_text">
<input type="submit" id="post_comment" name="post_comment" value="submit comment" class="post_comment" >
</form>
<form action="http://localhost/comment" method="post" accept-charset="utf-8">
<input type="text" name="comment_text" value="" id="comment_text" size="35" class="comment_text">
<input type="submit" id="post_comment" name="post_comment" value="submit comment" class="post_comment" >
</form>
<form action="http://localhost/comment" method="post" accept-charset="utf-8">
<input type="text" name="comment_text" value="" id="comment_text" size="35" class="comment_text">
<input type="submit" id="post_comment" name="post_comment" value="submit comment" class="post_comment" >
</form>
<form action="http://localhost/comment" method="post" accept-charset="utf-8">
<input type="text" name="comment_text" value="" id="comment_text" size="35" class="comment_text">
<input type="submit" id="post_comment" name="post_comment" value="submit comment" class="post_comment" >
</form>

<script type="text/javascript">
$('.post_comment').click(function() {
  var form_data = {
    csrfsecurity: $("input[name=csrfsecurity]").val(),
    post_text: $('.comment_text').val()    
  };

  $.ajax({
    url: "<?php echo site_url('/comment'); ?>",
    type: 'POST',
    data: form_data,
    success: function(response){
      $(".home_user_feeds").html("markUpCreatedUsingResponseFromServer");
    }
  });
  return false;
});
</script>

1 个答案:

答案 0 :(得分:0)

您的问题是post_text: $('.comment_text', this).val(),它会为您提供第一个选定.comment的值,您想要的是当前表单中的.comment。尝试

<script type="text/javascript">
$('.post_comment').click(function() {
  var form_data = {
    csrfsecurity: $("input[name=csrfsecurity]").val(),
    post_text: $(this).closest('form').find('.comment_text').val()    
  };

  $.ajax({
    url: "<?php echo site_url('/comment'); ?>",
    type: 'POST',
    data: form_data,
    success: function(response){
      $(".home_user_feeds").html("markUpCreatedUsingResponseFromServer");
    }
  });
  return false;
});
</script>

元素ID也应该是唯一的。