日期:2014-05-17  浏览次数:20486 次

防新浪微博评论功能实现
现在,我有这样一要需求。就是防新浪微博评论的数据实现。ajax实现
点击评论,传送一个ID过去,得到所有回复数据.然后显示在下面。这个要怎么实现呢?
而且还我还要跟他一样,点评论后马上显示?
通过AJAX实现。
------解决方案--------------------
你都知道传ID过去用ajax实现了,还不会写嘛
------解决方案--------------------
传递过去后 ajax 返回json js 读取js 将数据呈现到浏览器
------解决方案--------------------
$("#RESUME_WORK_save").bind("click",function(){//例如触发条件是RESUME_WORK_save的点击 也可以根据滚动条高度发送ajax请求调用数据等
var work_data="data=jsondate&.....";//post数据提交
$.ajax({
type:"POST",
url:"xxx.php",//需要提交页面 
data:work_data,
beforeSend:function(){
$(this).attr("disabled",true).val("请求中");
},
success:function(data){
var jsonresult=JSON.parse(data);//这里可以对拿回的数据进行组装成div,将该div插入或者任意其他处理方式将他放到div容器中。例如id worklist的容器 可以看看jquery帮助文档各种插入方式都有。
var divbox="<div>xxx</div>";
/*
内部插入
append(content 
------解决方案--------------------
 fn)  
appendTo(content) 
prepend(content 
------解决方案--------------------
 fn) 
prependTo(content) 
外部插入
after(content 
------解决方案--------------------
 fn) 
before(content 
------解决方案--------------------
 fn) 
insertAfter(content) 
insertBefore(content) 
*/
$("#worklist").after(divbox);//worklist之后插入divbox 可以实现动态载入。
}
});
});

------解决方案--------------------
LZ的就是基本代码的实现了
还有LZ在显示评论列表的时候可以有两个方式
一个就是在请求服务器端的时候,在服务器端将评论列表的html直接拼接好输出
另一个就是在服务器端仅仅返回相关评论的json数据,在客户端获取或解析json拼接html再追到加你所需要的html里面
------解决方案--------------------
这个功能已经完成过一次了,其实就是PHP返回JSON,然后用jquery插入HTML代码append appendTo,但是加载的时候要做好控制,注意不要造成客户端重复加载。
------解决方案--------------------
你这个要先转换成JSON,代码:

var dt = '{"data":[{"commentid":"1","weiboid":"47","uid":"100001","content":"34535","datetime":"1350355452","syncid":"0","synctype":"0","replayuid":"0","replaycid":"0"},{"commentid":"2","weiboid":"47","uid":"100000","content":"34535","datetime":"1350355456","syncid":"0","synctype":"0","replayuid":"0","replaycid":"0"},{"commentid":"3","weiboid":"47","uid":"10016","content":"34535","datetime":"1350355471","syncid":"0","synctype":"0","replayuid":"0","replaycid":"0"},{"commentid":"37","weiboid":"47","uid":"100000","content":"656321","datetime":"1350355517","syncid":"0","synctype":"0","replayuid":"0","replaycid":"0"}],"total_rows":4}';
var json = eval('(' + dt + ')'); 
$(json.data).each(function(i, item){
alert(item.commentid)
})


------解决方案--------------------
引用:
像这样的{"data":[{"commentid":"231","weiboid":"292","uid":"10000","content":"KSLDFJSKL;FKJSL","datetime":"1350355517","syncid":"0","synctype":"0","replayuid":"0","replaycid":"0"}],"total_rows……

jq有操作json的方法,你研究下吧,这个很基础
------解决方案--------------------
问题已经帮你解决了