php开发技巧和方法(php+ajax实现商品对比功能示例)
类别:编程学习 浏览量:1305
时间:2022-03-28 01:33:11 php开发技巧和方法
php+ajax实现商品对比功能示例本文实例讲述了php+ajax实现商品对比功能。分享给大家供大家参考,具体如下:
商品对比调用的JS文件(包含了商品对比框浮动JS):
- /*浮动窗口*/
- (function(){
- var n=10;
- var obj=document.getElementById("goods-compare");
- if(!obj){
- return false;
- }
- var x=0;
- window.onscroll=function(){
- obj.style.top=(document.body.scrollTop||document.documentElement.scrollTop)+n+'px';
- };
- window.onresize=function(){
- obj.style.top=(document.body.scrollTop||document.documentElement.scrollTop)+n+'px';
- };
- })();
- //添加显示对比框
- function addcompare(chk){
- $('#goods-compare').fadeIn().show();
- var count=$(".compare-box li").length;
- if (count>2)//这里可以修改对比的数据哦
- {
- alert('产品比较最多选3种哦');
- return;
- }
- $.ajax({
- type: 'post',
- url: 'ajax.php',
- data: {
- 'action':'1',
- 'gid':chk.gid,//商品ID
- 'gname':chk.gname,//商品名称
- 'gtype':chk.gtype//商品类别,类别不同时不能比较
- },
- cache: false,
- async: false,
- success: function(result) {
- if(result!='')
- {
- alert(result);
- }else{
- var url='http://www.lusen.com/product-'+chk.gid+'.html';//设置商品的链接地址
- $(".compare-box").append("<li class='liision clearfix' id='"+chk.gid+"'><li class='span-3'><a href='"+url+"' target='_blank' title='"+chk.gname+"'>'"+chk.gname+"'</a></li><span onclick="removecompare('"+chk.gid+"');">删除</span></li>")
- $("#comids").val($(".compare-box li").map(function(){//将对比的所有商品ID,赋值给#comids
- return $(this).attr('id');
- }).get().join(","));
- }
- }
- });
- }
- //删除对比产品
- function removecompare(id)
- {
- $.ajax({
- type: 'post',
- url: 'ajax.php',
- data: {
- 'action':'2',
- 'gid':id
- },
- cache: false,
- success: function(result) {
- $("#"+id).remove();
- $("#comids").val($(".compare-box li").map(function(){
- return $(this).attr('id');
- }).get().join(","));
- }
- });
- }
- //清空对比产品
- function clearcompare()
- {
- $.ajax({
- type: 'post',
- url: 'ajax.php',
- data: {
- 'action':'3'
- },
- cache: false,
- success: function(result) {
- $(".compare-box").html('');
- $("#comids").val('');
- }
- });
- }
- //显示对比框
- function showcompare()
- {
- $.ajax({
- type: 'post',
- url: 'ajax.php',
- data: {
- 'action':'4'
- },
- success: function(result) {
- if(result){
- $(".compare-box").append(result);
- $("#comids").val($(".compare-box li").map(function(){
- return $(this).attr('id');
- }).get().join(","));
- $('#goods-compare').fadeIn().show();
- }
- }
- });
- }
- //点击关闭对比框
- $('.close-gc').click(function(){
- $('#goods-compare').fadeOut().hide();
- });
商品对比调用Ajax文件:
- <?php
- function mb_unserialize($serial_str) {
- $serial_str =stripslashes($serial_str);
- return unserialize($serial_str);
- }
- if($_POST['action']=='1') {//add
- if(isset($_COOKIE['gtype'])) {
- if($_COOKIE['gtype']!=$_POST['gtype']) {
- echo '对不起,您选择的是不同类别的产品无法加入对比,请选择同类产品或清空当前对比栏再选择。';
- return;
- }
- }else {
- setcookie('gtype',$_POST['gtype']);
- }
- if(isset($_COOKIE['gid'])) {
- $arr_str = $_COOKIE['gid'];
- $arr=mb_unserialize($arr_str);
- if(count($arr)>2) {//商品比较数量
- echo "商品比较最多选3种";
- return;
- }
- foreach($arr as $val) {
- if($val[0]==$_POST['gid']) {
- echo "该商品已经加入对比框";
- return;
- }
- }
- $info=array($_POST['gid'],$_POST['gname'],$_POST['gtype']);
- $arr[]=$info;
- $arr_str=serialize($arr);
- setcookie('gid',$arr_str);
- }else {
- $info=array($_POST['gid'],$_POST['gname'],$_POST['gtype']);
- $arr[]=$info;
- $arr_str=serialize($arr);
- setcookie('gid',$arr_str);
- }
- }else if($_POST['action']=='2') {//delone
- $id=$_POST['gid'];
- $arr_str = $_COOKIE['gid'];
- $arr=mb_unserialize($arr_str);
- foreach($arr as $key=>$val) {
- if($val[0]==$id) {
- unset ($arr[$key]);
- }
- }
- $arr_str=serialize($arr);
- setcookie('gid',$arr_str);
- }else if($_POST['action']=='3') {//delall
- setcookie('gid','');
- setcookie('gtype','');
- }else if($_POST['action']=='4') {//showlist
- if(isset($_COOKIE['gid'])) {
- $data='';
- $arr_str = $_COOKIE['gid'];
- $arr=mb_unserialize($arr_str);
- foreach ($arr as $val){
- $url="http://www.lusen.com/product-".$val[0].".html";
- $data.="<li id='{$val[0]}' class='liision clearfix'><li class='span-3'><a href='{$url}' target='_blank' title='{$val[1]}'>{$val[1]}</a></li><span onclick="removecompare('{$val[0]}');">删除</span></li>";
- }
- echo $data;
- }
- }
- ?>
希望本文所述对大家PHP程序设计有所帮助。
原文链接:https://www.cnblogs.com/tdalcn/p/10601278.html
您可能感兴趣
- php静态类和动态类的区别(PHP Trait代码复用类与多继承实现方法详解)
- phptime函数与时区设置(php常用日期时间函数实例小结)
- php异常和错误区别(PHP批斗大会之缺失的异常详解)
- php中三种变量的作用区域(PHP global全局变量经典应用与注意事项分析附$GLOBALS用法对比)
- php7处理方案(PHP7 安装event扩展的实现方法)
- php微信支付流程(PHP实现微信退款的方法示例)
- python与php比较(浅谈php调用python文件)
- php商城支付接口(php实现银联商务公众号+服务窗支付的示例代码)
- nginx 怎么搭建web服务器(Linux+Nginx+Php架设高性能WEB服务器)
- php中钩子的理解与实例教程(php中钩子hook的原理与简单应用demo示例)
- php数组是怎么实现的(PHP里的$_GET数组介绍)
- php去水印方法(PHP开发的文字水印,缩略图,图片水印实现类与用法示例)
- php 获取get url(PHP实现获取url地址中顶级域名的方法示例)
- php开启curl(解决PHP使用CURL发送GET请求时传递参数的问题)
- php查找文件存在(php判断目录存在的简单方法)
- php创建文件(php创建多级目录与级联删除文件的方法示例)
- 太鸡贼了,这老小区轻松搞定了停车问题(这老小区轻松搞定了停车问题)
- 节日我在岗|警景相融 平安相伴(节日我在岗警景相融)
- 战 疫 时刻 致敬每一位石化大学的 守护者(战疫时刻)
- 老弄堂里的市井味道(老弄堂里的市井味道)
- 小米音乐可绑定QQ音乐, QQ音乐 真的会消失在小米的设备上吗(小米音乐可绑定QQ音乐)
- 小米Watch S1评测 或许能成为小米冲击高端可穿戴设备的里程碑(小米WatchS1评测或许能成为小米冲击高端可穿戴设备的里程碑)
热门推荐
- jQuery中$.each的用法
- python指定参数教程(详解Python传入参数的几种方法)
- idea 启动docker容器不重新打包(Docker遇到Intellij IDEA,Java开发提升了十倍生产力)
- 服务器怎么创建网站(网站如何选择服务器空间?)
- background-position详细讲解(background-position百分比原理详解)
- django框架全面讲解(Django uwsgi Nginx 的生产环境部署详解)
- mysql用户登录命令(mysql的登陆和退出命令格式)
- Web.config 图形化编辑器:ASPhere
- css宫格布局(CSS实现页面九宫格布局的简单示范)
- 如何调试移动网站
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9