jQuery+PHP打造滑动开关效果


Posted in Javascript onDecember 16, 2014

本文介绍了使用jQuery、PHP和MySQL实现类似360安全卫士防火墙开启关闭的开关,可以将此功能应用在产品功能的开启和关闭功能上。

jQuery+PHP打造滑动开关效果

准备工作为了更好的演示本例,我们需要一个数据表,记录需要的功能说明及开启状态,表结构如下:

CREATE TABLE `pro` (  

  `id` int(11) NOT NULL auto_increment,  

  `title` varchar(50) NOT NULL,  

  `description` varchar(200) NOT NULL,  

  `status` tinyint(1) NOT NULL default '0',  

  PRIMARY KEY  (`id`)  

) ENGINE=MyISAM  DEFAULT CHARSET=utf8;

你可以向表中pro插入几条数据。

index.php

我们要在页面显示相关功能列表,使用PHP读取数据表,并以列表的形式展示。

<?php   

   require_once('connect.php'); //连接数据库   

   $query=mysql_query("select * from pro order by id asc");   

   while ($row=mysql_fetch_array($query)) {   

   ?>   

   <div class="list">   

     <div class="fun_title">   

        <span rel="<?php echo $row['id'];?>" <?php if($row['status']==1){ ?>   

class="ad_on" title="点击关闭"<?php }else{?>class="ad_off" title="点击开启"<?php }?>></span>   

        <h3><?php echo $row['title']; ?></h3>   

     </div>   

     <p><?php echo $row['description'];?></p>   

   </div>   

 <?php } ?>

连接数据库,然后循环输出产品功能列表。

CSS

为了渲染一个比较好的页面外观,我们使用CSS来美化页面,使得页面更符合人性化。使用CSS,我们只需用一张图片来标识开关按钮。

jQuery+PHP打造滑动开关效果

.list{padding:6px 4px; border-bottom:1px dotted #d3d3d3; position:relative}   

.fun_title{height:28px; line-height:28px}   

.fun_title span{width:82px; height:25px; background:url(switch.gif) no-repeat;    

cursor:pointer; position:absolute; right:6px; top:16px}   

.fun_title span.ad_on{background-position:0 -2px}   

.fun_title span.ad_off{background-position:0 -38px}   

.fun_title h3{font-size:14px; font-family:'microsoft yahei';}   

.list p{line-height:20px}   

.list p span{color:#f60}   

.cur_select{background:#ffc}

CSS代码,我不想详述,提示下我们使用了一张图片,然后通过background-position来定位图片的位置,这是大多数网站使用的方法,好处咱就不说了。

jQuery

我们通过单击开关按钮,及时请求后台,改变对应的功能开关状态。这个过程是一个典型的Ajax应用。通过点击开关按钮,前端向后台PHP发送post请求,后台接收请求,并查询数据库,并将结果返回给前端,前端jQuery根据后台返回的结果,改变按钮状态。

$(function(){   

    //鼠标滑向换色   

    $(".list").hover(function(){   

        $(this).addClass("cur_select");   

    },function(){   

        $(this).removeClass("cur_select");   

    });   

    //关闭   

    $(".ad_on").live("click",function(){   

        var add_on = $(this);   

        var status_id = $(this).attr("rel");   

        $.post("action.php",{status:status_id,type:1},function(data){   

            if(data==1){   

                add_on.removeClass("ad_on").addClass("ad_off").attr("title","点击开启");   

            }else{   

                alert(data);   

            }   

        });   

    });   

    //开启   

    $(".ad_off").live("click",function(){   

        var add_off = $(this);   

        var status_id = $(this).attr("rel");   

        $.post("action.php",{status:status_id,type:2},function(data){alert(data);     

            if(data==1){   

                add_off.removeClass("ad_off").addClass("ad_on").attr("title","点击关闭");   

            }else{   

                alert(data);   

            }   

        });   

    });   

});

说明,代码中,首先实现了鼠标滑向功能列表换色的功能(详见demo),然后就是单击开关按钮,向后台action.php发送Ajax请求,提交的参数是对应功能的id和type,用于后台区分请求的是哪个功能和请求的类型(开启和关闭)。其实,大家稍微留神,可以看出,根据Ajax请求成功返回结果后,开关按钮动态改变样式,实现改变开关状态的功能。

action.php

后台action.php接收到前端的请求,根据参数执行SQL语句,更新对应功能的状态,成功后将结果返回给前端,请看代码:

require_once('connect.php');   

$id = $_POST['status'];   

$type = $_POST['type'];   

if($type==1){ //关闭   

    $sql = "update pro set status=0 where id=".$id;   

}else{ //开启   

    $sql = "update pro set status=1 where id=".$id;   

}   

$rs = mysql_query($sql);   

if($rs){   

    echo '1';   

}else{   

    echo '服务器忙,请稍后再试!';   

}

结束语通过本文您可以熟练掌握ajax在WEB开发中的应用,并能快速的应用到您的项目中。将一如既往的为广大开发者提供更具实用性的应用,致力于WEB前端技术的应用。

Javascript 相关文章推荐
JavaScript高级程序设计 阅读笔记(七) ECMAScript中的语句
Feb 27 Javascript
Javascript 页面模板化很多人没有使用过的方法
Jun 05 Javascript
jquery中的过滤操作详细解析
Dec 02 Javascript
js/jQuery简单实现选项卡功能
Jan 02 Javascript
js事件监听机制(事件捕获)总结
Aug 08 Javascript
原生javascript实现的分页插件pagenav
Aug 28 Javascript
Javascript字符串常用方法详解
Jul 21 Javascript
微信小程序 MD5加密登录密码详解及实例代码
Jan 12 Javascript
js实现随机数字字母验证码
Jun 19 Javascript
Vue实现一个返回顶部backToTop组件
Jul 25 Javascript
js实现数字滚动特效
Dec 16 Javascript
Jquery滑动门/tab切换实现方法完整示例
Jun 05 jQuery
javascript进行四舍五入方法汇总
Dec 16 #Javascript
javascript 判断整数方法分享
Dec 16 #Javascript
使用jQuery不判断浏览器高度解决iframe自适应高度问题
Dec 16 #Javascript
jquery队列函数用法实例
Dec 16 #Javascript
JQuery仿小米手机抢购页面倒计时效果
Dec 16 #Javascript
jQuery实现数字加减效果汇总
Dec 16 #Javascript
javascript使用switch case实现动态改变超级链接文字及地址
Dec 16 #Javascript
You might like
php 应用程序安全防范技术研究
2009/09/25 PHP
php对关联数组循环遍历的实现方法
2015/03/13 PHP
搭建基于Docker的PHP开发环境的详细教程
2015/07/01 PHP
IE php关于强制下载文件的代码
2008/08/23 Javascript
JS图片浏览组件PhotoLook的公开属性方法介绍和进阶实例代码
2010/11/09 Javascript
js 通用javascript函数库整理
2011/08/14 Javascript
jquery自定义属性(类型/属性值)
2013/05/21 Javascript
浅析offsetLeft,Left,clientLeft之间的区别
2013/11/30 Javascript
基于JQuery实现的图片自动进行缩放和裁剪处理
2014/01/31 Javascript
深入分析JQuery和JavaScript的异同
2014/10/23 Javascript
javascript实现的网站访问量统计代码
2015/12/20 Javascript
Node.js静态文件服务器改进版
2016/01/10 Javascript
Vue.js学习教程之列表渲染详解
2017/05/17 Javascript
JavaScript代码判断输入的字符串是否含有特殊字符和表情代码实例
2017/08/17 Javascript
深入理解Vue nextTick 机制
2018/04/28 Javascript
JavaScript实现新年倒计时效果
2018/11/17 Javascript
Vue实现微信支付功能遇到的坑
2019/06/05 Javascript
Vue获取微博授权URL代码实例
2020/11/04 Javascript
[01:02:02]DOTA2上海特级锦标赛A组败者赛 EHOME VS CDEC第二局
2016/02/25 DOTA
Python 解析XML文件
2009/04/15 Python
Flask入门教程实例:搭建一个静态博客
2015/03/27 Python
python实现连接mongodb的方法
2015/05/08 Python
Python批量更改文件名的实现方法
2017/10/29 Python
33个Python爬虫项目实战(推荐)
2019/07/08 Python
如何爬取通过ajax加载数据的网站
2019/08/15 Python
selenium+PhantomJS爬取豆瓣读书
2019/08/26 Python
python super的使用方法及实例详解
2019/09/25 Python
python实现图片上添加图片
2019/11/26 Python
基于Python-Pycharm实现的猴子摘桃小游戏(源代码)
2021/02/20 Python
wedgwood加拿大官网:1759年成立的英国国宝级陶瓷餐具品牌
2018/07/17 全球购物
泰国在线书店:SE-ED
2020/06/21 全球购物
服装设计专业毕业生推荐信
2013/11/09 职场文书
党员教师四风自我剖析材料
2014/09/30 职场文书
开展党的群众路线教育实践活动剖析材料
2014/10/13 职场文书
年终工作总结范文2014
2014/11/27 职场文书
Linux系统下MySQL配置主从分离的步骤
2022/03/21 MySQL