【发布时间】:2012-04-18 14:32:25
【问题描述】:
包含表单的div,包含在post div中
<div class="add-comment">
<form action="post.php?post=<?php echo $post->id; ?>" class="commentform" method="post">
<textarea name="content" class="comment_content"></textarea>
<input type="submit" class="submit" name="submit_comment" value="Add Comment" />
</form>
</div>
这是处理帖子的代码
if(isset($_POST['submit_comment'])){
if(isset($_GET['post'])){
$content = strip_tags(trim($_POST['content']));
$comment = Comment::make($_GET['post'],$content,$_SESSION['user_id'],1);
if($comment && $comment->save()){
echo "Post submitted succesfully.";
}else{
$message = Comment::$comment_message;
}
}
}
没有 JS 的代码按预期工作。 我想要做的是提交评论而不刷新页面。 这是我尝试过的 JS 代码,但似乎失败了。
$(document).ready(function(){
$('.commentform').submit(function(event){
event.preventDefault();
var form = $(this);
var posturl = form.attr('action');
var comment = form.find('textarea[name="content"]').val();
//var comment = $(this).closest($('.comment_content'));
$.post(posturl, comment, function(data){
console.log(data);
});
});
});
出了什么问题?按下提交按钮后,页面仍然存在,但评论没有被提交。 (我可以通过重新加载页面来判断)
【问题讨论】:
-
你是如何保存评论的?你能描述一下它是如何失败的吗?您是否有 Firebug 或任何其他可以显示潜在 JS 错误的 Web 开发工具?
-
firebug 根本没有显示任何错误。我通过使用“INSERT..”查询数据库来保存,但我想 php 没有任何问题,因为没有 js 的代码运行完美。