jQuery+ajax实现顶一下,踩一下效果

demo页面的实现


代码如下:

<div class="digg" id="digg">
<div class="good"> <a href="#">
<p>这个文档不错</p>
<div class="bar">
<div id="g_img" style="width:70%"></div>
</div>
<span class="num" id="num">70%(7000)</span> </a> </div>
<div class="bad"> <a href="#">
<p>文档有待改进</p>
<div class="bar">
<div id="b_img" style="width:30%"></div>
</div>
<span class="num">30%(3000)</span> </a> </div>
</div>

主要一点就是通过百分比来控制g_img的宽度,至于css代码就不贴出来了。
演示代码:


代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Digg</title>
<style type="text/css">
* {
padding:0;
margin:0;
}
.digg {
height: auto;
width: 190px;
font-size:12px;
font-weight:normal;
}
.digg a {
display: block;
height: 48px;
width: 189px;
background-image: url(images/mark.gif);
background-repeat: no-repeat;
position: relative;
color: #000;
text-decoration: none;
}
.digg .good {
margin-bottom:10px;
margin-top:5px;
}
.digg .good a {
background-position: -189px 0px;
}
.digg .good a:hover {
background-position: 0px 0px;
}
.digg .bad a {
background-position: -378px 0px;
}
.digg .bad a:hover {
background-position: -567px 0px;
}
.digg a p {
padding-left:30px;
line-height:25px;
}
.digg .bar {
background-color: white;
height: 5px;
left: 20px;
overflow: hidden;
position: absolute;
text-align: left;
top: 30px;
width: 55px;
}
.bar #g_img {
background-image: url(images/sprites.gif);
background-repeat: repeat-x;
height: 5px;
width: auto;
}
.bar #b_img {
background-image: url(images/sprites.gif);
background-repeat: repeat-x;
height: 5px;
width: auto;
background-position: 0px -5px;
}
.num {
color: #333;
font: normal normal 100 10px/12px Tahoma;
left: 80px;
position: absolute;
top: 26px;
}
.digg .good .bar {
border: 1px solid #40A300;
}
.digg .bad .bar {
border: 1px solid #555;
}
</style>
</head>
<body>
<div class="digg" id="digg">
<div class="good"> <a href="#">
<p>这个文档不错</p>
<div class="bar">
<div id="g_img" style="width:70%"></div>
</div>
<span class="num" id="num">70%(7000)</span> </a> </div>
<div class="bad"> <a href="#">
<p>文档有待改进</p>
<div class="bar">
<div id="b_img" style="width:30%"></div>
</div>
<span class="num">30%(3000)</span> </a> </div>
</div>
</body>
</html>

有了demo,其他实现起来就方便多了,首先是页面获取html,页面第一次加载,用ajax获取后台数据,不要直接显示。(这里为了方便测试,就用asp作为后台语言)
下面是asp输出html代码


代码如下:

function getdigshtml()'输出html
dim rsajax,sql,str,digsnum,undigsnum,digsnumall,digsper,undigsper
Set rsajax=server.CreateObject("adodb.recordset")
sql="select * from dig where id=1"
rsajax.open sql,conn,1,1
digsnum=rsajax("digs")
undigsnum=rsajax("undigs")
if isnull(digsnum) then digsnum=0
if isnull(undigsnum) then undigsnum=0
digsnumdigsnumall=digsnum+undigsnum
if digsnumall=0 then
digsper=0
undigsper=0
else
digsper=FormatNumber(cint(digsnum)/cint(digsnumall),3)*100
undigsper=FormatNumber(cint(undigsnum)/cint(digsnumall),3)*100
end if
str="<div class='good'>"
strstr=str&"<a href=JavaScript:isdigs('digs') >"
strstr=str&"<p>这个文档不错</p><div class='bar'><div id='g_img' style='width:"&digsper&"%'></div></div>"
strstr=str&"<span class='num'>"&digsper&"%("&digsnum&")</span>"
strstr=str&"</a></div><div class='bad'>"
strstr=str&"<a href=JavaScript:isdigs('undigs') >"
strstr=str&"<p>文档有待改进</p><div class='bar'><div id='b_img' style='width:"&undigsper&"%'></div></div>"
strstr=str&"<span class='num'>"&undigsper&"%("&undigsnum&")</span>"
strstr=str&"</a></div>"
getdigshtml=str
end function

输出完了 接下来就是前台获取,这时候我们就要用到jquery ajax,为什么不直接用ajax,原因很简单,我不会。。。。。看一下jquery中ajax代码,很简单


代码如下:

function getdigshtml()//获取顶一下,踩一下html
{
$.ajax({
type:'POST',
url:'digg.asp',
data:'action=getdigshtml',
success:function(msg){
$("#digg").html(msg);
}
})
}

输出完了,接下来一步就是digs和undigs的操作了,跟获取html的代码差不多


代码如下:

function isdigs(digtype)//顶一下,踩一下操作
{
$.ajax({
type:'POST',
url:'digg.asp',
data:'action=digs&digtype='+digtype,
/* beforeSend:function(){
$("#vote").hide();
$("#loadings").show();
}, ajax请求显示loading效果*/
success:function(msg){
switch (msg)
{
/* 后台用来判断
case '1':
$("#loadings").hide();
$("#vote").show();
alert("请先登录!");
break;
case '2':
$("#loadings").hide();
$("#vote").show();
alert("请先下载,再操作!");
break;
case '4':
$("#loadings").hide();
$("#vote").show();
alert("您已经参与过评价!");
break;*/
case '3':
getdigshtml();//重新绑定html
//$("#loadings").hide();
//$("#vote").show();
alert("谢谢你的参与!");
break;
default:
}
}
})
}

注释掉的代码:一部分是后台数据合法验证用的,beforeSend这个方法是ajax请求执行前的相关操作(用于做loading比较多)
最后一步就是,每次数据提交完并且成功返回,getdigshtml()都要重新获取绑定下,这样就保证了数据的实时性。
演示代码需要asp环境,大家可以测试下。
打包下载地址: http://www.jb51.net/jiaoben/28489.html

(0)

相关推荐

  • php结合ajax实现赞、顶、踩功能实例

    php应用越来越多,也越来越广泛,为了增加网站的丰富多彩,从而出现了很多新的技术.ajax是现代网站中不能缺少的一项技术,他可以异步刷新数据,而实现很多效果,比如刷新验证码,微博中的赞功能,都是运用这个. 本次赞功能的效果图: 主页文件(index.php): 复制代码 代码如下: <script type="text/javascript" src="http://www.jb51.net/js/jquery.min.js"></script&g

  • Ajax实现评论中顶和踩功能的实例代码

    效果大致如下: javascript这块使用jquery.新建一个Asp.net web项目,使用NuGet获取Jquery最新版. 数据库方面使用Nhibernate,用Install-Package Nhibernate引用. 数据库是用的PostgreSQL,Install-Package Npgsql把驱动装上.我这里偷个懒,数据库名,用户名和密码都是ajaxDemo了. 创建数据库: 复制代码 代码如下: CREATE DATABASE "ajaxDemo"   WITH O

  • PHP结合jQuery实现的评论顶、踩功能

    当我们浏览网页时,我们想对网页内容如文章.评论中的观点持赞同或反对意见时,可以通过点击网页中的"顶"和"踩"来进行投票.而整个交互过程,开发者可以通过ajax异步来实现,从而提高用户体验. 本文结合实例,讲解使用PHP+MySql+jQuery实现的"顶"和"踩"投票功能,通过记录用户IP,判断用户的投票行为是否有效,该实例也可以扩展到投票系统中.如果您具备PHP.MySql和jQuery相关基础知识,那么请继续往下阅读. 准

  • php实现网站顶踩功能的完整前端代码

    许多网站都支持顶.踩功能,以便于显示用户对当前网页内容的满意度反馈.下面我们给出本站使用的顶.踩功能的完整前台实现代码,以便于用户参考. 完整的前端代码包括html.css.js各部分的代码.使用下列前端代码,加上自行简单实现的后台代码,即可实现完整的顶踩功能. 前端html代码: <div id="vote" data_id="文章唯一key"> <span id="dig" class="vote-btn"

  • jQuery+ajax实现顶一下,踩一下效果

    demo页面的实现 复制代码 代码如下: <div class="digg" id="digg"> <div class="good"> <a href="#"> <p>这个文档不错</p> <div class="bar"> <div id="g_img" style="width:70%"

  • jQuery Ajax 异步加载显示等待效果代码分享

    AJAX 全称 Asynchronous JavaScript and XML(异步的 JavaScript 和 XML).它并非一种新的技术,而是以下几种原有技术的结合体. 1) 使用CSS和XHTML来表示. 2) 使用DOM模型来交互和动态显示. 3) 使用XMLHttpRequest来和服务器进行异步通信. 4) 使用javascript来绑定和调用. 通过AJAX异步技术,可以在客户端脚本与web服务器交互数据的过程中使用XMLHttpRequest对象来完成HTTP请求(Reques

  • 用php和jQuery来实现“顶”和“踩”的投票功能

    当我们浏览网页时,我们想对网页内容如文章.评论中的观点持赞同或反对意见时,可以通过点击网页中的"顶"和"踩"来进行投票.而整个交互过程,开发者可以通过ajax异步来实现,从而提高用户体验. 我们先要准备为整个实例运行所需的mysql数据表,实例中需要两个表,votes表用来记录对应文章或评论的用户投票数,并且我们默认写入一条id为1的数据以便演示,votes_ip表用来记录用户每次投票的IP,程序根据用户IP决定投票是否有效. 数据表 CREATE TABLE IF

  • PHP+jQuery+Ajax实现多图片上传效果

    今天我给大家分享的是在不刷新页面的前提下,使用PHP+jQuery+Ajax实现多图片上传的效果.用户只需要点击选择要上传的图片,然后图片自动上传到服务器上并展示在页面上. HTML 我们在页面上放置一个form表单,使用post提交到后台php处理程序upload.php,注意enctype属性设置要支持文件上传.#preview用来显示上传完毕后的图片.关于css样式设置本文不加说明,请参照下载包的源码. 复制代码 代码如下: <form id="imageform" met

  • PHP+MySql+jQuery实现的"顶"和"踩"投票功能

    本文实例为大家分享了基于PHP+jQuery+MySql实现红蓝(顶踩)投票代码,供大家参考,具体内容如下 数据库操作: CREATE TABLE IF NOT EXISTS `votes` ( `id` int(10) NOT NULL AUTO_INCREMENT, `likes` int(10) NOT NULL DEFAULT '0', `unlikes` int(10) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=MyISAM D

  • PHP+MySql+jQuery实现的"顶"和"踩"投票功能

    本文实例为大家分享了基于PHP+jQuery+MySql实现红蓝(顶踩)投票代码,供大家参考,具体内容如下 数据库操作: CREATE TABLE IF NOT EXISTS `votes` ( `id` int(10) NOT NULL AUTO_INCREMENT, `likes` int(10) NOT NULL DEFAULT '0', `unlikes` int(10) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=MyISAM D

  • ASP+ajax实现顶一下、踩一下同支持与反对的实现代码

    1.点击相应顶一下.踩几下的代码类似 response.write ("<a href='javascript:void(0)' onclick='digg("&rs("id")&",1)'>顶</a>(<span class='ding"&rs("id")&"'>"&rs("ding")&"&

  • jquery+ajax实现省市区三级联动效果简单示例

    本文实例讲述了jquery+ajax实现省市区三级联动效果.分享给大家供大家参考,具体如下: 一直想学习下Ajax,没时间,汗,这借口太牵强了.下了点教程在手机里,翻了好几遍了,没实战一次. 最近的项目里需要Ajax实现效果,就下了个jquery,然后找了个实例,学习了一下,幡然醒悟,NND,jquery果然强大的一塌糊涂,实现Ajax简直就是不费吹灰之力.下面把学习过程跟大家分享下,虽然还没有搞清楚jquery ajax的底层相关.不管了.我们不需要去发明轮子.呵呵. 先上代码,是一个省市区三

随机推荐