如何在stackoverflow上发表评论?

时间:2009-07-27 20:46:12

标签: php ajax comments

如何在stackoverflow上发表评论?

我的意思更具体地说,我使用php / mysql如何在不重新加载页面的情况下添加注释,我知道这是一个使用AJAX的简单过程但是当你在SO上发表评论时它也可以选择删除它立刻,当我在我的数据库中插入注释时,ID号是自动增量,所以我现在的真正问题是

发布评论后,评论是否已发布,只是添加到页面中,并附带一些javascript以将内容附加到页面

OR

是否使用AJAX检索您刚刚发布的评论,然后将其显示在页面上?

我想知道的原因是因为我的系统使用了自动增量ID,那么如果我这样做了第一种方法,只需更新我在提交时发布的内容,但这种方法不会给我所需的ID能够按ID号删除评论

希望有意义

更新 我在这里阅读了其他帖子之后发布了我现在的想法

6 个答案:

答案 0 :(得分:5)

我要走出去,说两者之间是正确的。评论的内容仅根据您输入的内容发布...

...但页面等待附加你的评论,直到AJAX魔法发生并且页面上有新评论的ID。

(应该是这样的:如果我是你,我会怎么做......快速,轻便,实用)

答案 1 :(得分:2)

我的猜测是,在页面执行AJAX帖子添加注释后,它等待来自服务器的响应,为其提供注释的id,然后根据返回的id进行另一个AJAX调用以呈现注释。如果你想在没有从服务器返回评论的情况下这样做,你肯定可以通过javascript添加评论。但是,用户配置文件链接之类的内容可能会有点繁琐。

编辑: 一个更简单的方法是让第一个AJAX调用返回呈现整个注释所需的HTML,然后将该响应直接注入页面。这将消除对2个AJAX调用的需要。

答案 2 :(得分:1)

我会尝试使用jQuery这样的东西:

function commentSubmit()
{
  $.post('/ajax/comment',{comment:$('#comment').val()},function(d){
    if(d is error) alert(d);
    else $('#allcomments').append(d);
  })
}

其中d可以是错误消息或带注释的html。

答案 3 :(得分:0)

我会对php脚本执行ajax请求,该脚本会将注释添加到mysql数据库中。 ajax回调将检索ID并以可视方式将注释添加到页面(无需重新加载)。删除按钮将对php脚本执行另一个ajax请求,将ID传递给脚本。回调将从页面中删除评论。

答案 4 :(得分:0)

如果您希望能够删除注释,则必须与服务器通信,因此必须使用ajax。只需将注释发送到服务器,等待返回注释ID,然后将注释格式化为某些HTML,在新HTML中隐藏新注释ID(可能在删除注释的链接中)和wala。 / p>

答案 5 :(得分:0)

<强>更新

在阅读答案后,这是我的基本想法,我不知道如何编写javascrpt,但你会得到设计流程的想法:

POST comment input to script with AJAX {    
    if commentID is returned{
        Insert comment DIV into page, userID and userPicture are in a user session variable and commentID is returned from ajax post
    }ELSE IF error is returned{
        Insert an error message DIV into page
    }
}
  

然后评论div或其他   插入将包括
   - 会话变量的用户名
   - 来自会话变量的userID,用于链接到配置文件
   - 会话变量的用户图片
   - 允许用户删除该评论的评论ID

然后删除用户发布的页面上的任何评论

POST comment ID and userID to DELETION script with AJAX {    
    if commentID is deleted{
        REMOVE comment DIV from page
    }ELSE IF error is returned{
        Insert an error message DIV into page
    }
}