php+ajax实现商品对比功能示例

Ann ·
更新时间:2024-11-11
· 546 次阅读

本文实例讲述了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='division clearfix' id='"+chk.gid+"'><div class='span-3'><a href='"+url+"' target='_blank' title='"+chk.gname+"'>'"+chk.gname+"'</a></div><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='division clearfix'><div class='span-3'><a href='{$url}' target='_blank' title='{$val[1]}'>{$val[1]}</a></div><span onclick=\"removecompare('{$val[0]}');\">删除</span></li>"; } echo $data; } } ?>

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP+ajax技巧与应用小结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

您可能感兴趣的文章:php+ajax实现无刷新动态加载数据技术php采用ajax数据提交post与post常见方法总结php+ajax+jquery实现点击加载更多内容ajax调用返回php接口返回json数据的方法(必看篇)PHP+ajax 无刷新删除数据php+ajax实现带进度条的大数据排队导出思路以及源码ajax提交数据到后台php接收(实现方法)php+ajax 实现输入读取数据库显示匹配信息PHP中如何判断AJAX提交的数据



PHP AJAX

需要 登录 后方可回复, 如果你还没有账号请 注册新账号