如何在stackoverflow上发表评论?
我的意思更具体地说,我使用php / mysql如何在不重新加载页面的情况下添加注释,我知道这是一个使用AJAX的简单过程但是当你在SO上发表评论时它也可以选择删除它立刻,当我在我的数据库中插入注释时,ID号是自动增量,所以我现在的真正问题是
发布评论后,评论是否已发布,只是添加到页面中,并附带一些javascript以将内容附加到页面
OR
是否使用AJAX检索您刚刚发布的评论,然后将其显示在页面上?
我想知道的原因是因为我的系统使用了自动增量ID,那么如果我这样做了第一种方法,只需更新我在提交时发布的内容,但这种方法不会给我所需的ID能够按ID号删除评论
希望有意义
更新 我在这里阅读了其他帖子之后发布了我现在的想法
答案 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
}
}