jQuery表单没有响应正确的帖子

时间:2014-04-29 16:10:06

标签: javascript php jquery forms

除了一个问题之外,这个表单应该正常工作,注释不是跟随$ postid。

假设帖子3中有6个帖子和用户评论,帖子3评论被添加到帖子1而不是帖子3。 换句话说,评论只会添加到第一篇文章中。

评论需要遵循每个单独的帖子,并且数据位于变量$ postid中。其他两个变量适用于用户。

javascript代码:

<script type="text/javascript">
function submitForm() 
{
    $.ajax(
    {
        type:'POST', 
        url: '<?php echo APP_ROOT; ?>views/layouts/ajaxtest.php', 
        data:$('#commentForm').serialize(),
        success: function(response) 
        {
            $('#commentForm').find('.form_result').html(response);
        }
    });
    return false;
}
</script>

这些是php中传递给表单的变量。

<?php
   $postid = 'contains post id';
   $user = 'contains user code';
   $otheruser = 'contains other user code';
?>

这是表格。

<form id="commentForm" onsubmit="return submitForm();">
  <input id="postid" name="postid" value="<?php echo $postid; ?>" type="hidden" />
  <input name="user" value="<?php echo $user; ?>" type="hidden" />
  <input name="friend" value="<?php echo $otheruser; ?>" type="hidden" />
  <textarea name="send[mc_comment]" placeholder='Comment' rows='1'></textarea>
  <input type="submit" name="submit" value="Submit" onclick="submitForm();" class="postit" />
  <div class="form_result"> </div>
</form>

1 个答案:

答案 0 :(得分:0)

听起来问题是您对所有帖子使用相同的id="commentForm"。 ID必须在网页中是唯一的。您应该使用类而不是ID来重复块。

<form id="commentForm" onsubmit="return submitForm(this);">

然后按如下方式更改JS:

function submitForm(form) 
{
    $.ajax(
    {
        type:'POST', 
        url: '<?php echo APP_ROOT; ?>views/layouts/ajaxtest.php', 
        data:$(form).serialize(),
        context: form, // So that success function can access the correct form
        success: function(response) 
        {
            $(this).find('.form_result').html(response);
        }
    });
    return false;
}