码迷,mamicode.com
首页 > 编程语言 > 详细

Javascript 设置cookie 后台php获得cookie 并读出在前端所点击过的图片

时间:2016-08-09 14:46:19      阅读:621      评论:0      收藏:0      [点我收藏+]

标签:

  最近需要些一个小Demo,前端页面通过javascript设置cookie ,后台页面通过cookie读取cookie 并在另一张页面上输出在前端点击过的图片。

  具体实现方法:

  ody>
  <div  style="text-align:center">
   <h2  id="h2">图片信息</h2>
   <div id="showPic">
    
   </div>
   
   
  </div>
 </body>

普通的html代码

var cookie_Str = ‘‘;
  var pic = new Array();
  window.onload=function ()
  {
  
  //ajax将后台数据返回值前端
   var xmlhttp;
   xmlhttp = new XMLHttpRequest();
   
   xmlhttp.onreadystatechange=function()
   {
    if(xmlhttp.readyState==4 &&xmlhttp.status==200)
    {
     
     //console.log("ajax success");
     var obj = JSON.parse(xmlhttp.responseText);
     
     for(var i = 0;i<obj.length;i++)
     {
      pic.push(obj[i].picname);
      //console.log(obj[i].picname)
     }
      //在前端页面画出html代码
     var html = "<img  id=‘img‘ style=‘margin:auto;border:2px solid red;width:80%;cursor: pointer;‘ onclick=‘submit1()‘ src=‘"+pic[0]+"‘ alt=‘###‘/>";
     for(var i = 1;i <pic.length;i++)
     {
      html +="<br/>";
      html +="<img class=‘img‘ style=‘margin:auto;border:2px solid red;width:80%;cursor: pointer;‘ onclick=‘submit1()‘ src=‘"+pic[i]+"‘ alt=‘###‘ />";
     }
     document.getElementById("showPic").innerHTML=html;
     
     //alert(obj)
     //alert("success");
    }
   }
   xmlhttp.open("GET","admin.php",true);
   xmlhttp.send();  
  }
  function submit1()
  {
   
   $("img").click(function(){
   $str = $(this).attr(‘src‘);//点中图片的url
   console.log($str);
   cookie_Str +=" "+$str;
   console.log(cookie_Str);
   //alert(cookie_Str)
   //alert($str);
   setCookie(‘url‘,cookie_Str,1);
   });
  }
  //设置cookie
  function setCookie(c_name,value,expiredays)
  {
  var exdate = new Array();
  exdate=new Date();
  exdate.setDate(exdate.getDate()+expiredays);
  document.cookie=c_name+ "=" +escape(value)+
  ((expiredays==null) ? "" : ";expires="+exdate.toGMTString())
  }

javascript代码

先通过ajax后台数据库读取图片的url,然后使用innerHtml在前端页面画出img,这里推荐使用JQuery,因为JQuery获取对象比较容易,设置对象的属性也比较容易。

在每条img中加入一个onclick事件 用于设置cookie,这里使用了jquery中的attr()获取被点击的img的src,但是会出一个bug,当点击多个img之后cookie_Str +=" "+$str;

出来的内容或将之前的onclick方法重新运行一遍。这里我使用后台页面将重复的数据删除。当然前端也可设置。然后调用setCookie 设置cookie 三个参数分别是cookie名

cookie值 cookie的时间。这里还有一个更好的解决方法。通过src jquery中的jquery.cookie.js文件直接。cookie就可以设置cookie了

cookie.php

 

<?php

 $url = trim($_COOKIE[‘url‘]);

 //echo $url;

 $arr1 = explode(‘ ‘,$url);

 //var_dump($arr1);  

//$arr2 = array_unique($arr1);

   $newArr=array_map(function ($v){return array(‘name‘=>$v);},$arr1);

 echo json_encode($newArr);

?>

后台php代码  经过删除空格 拆分成数组 去掉重复元素(出来的是一个二元数组) json格式编码 输出

 

show.html


  window.onload=function()
  {
   var pic = new Array();
   var xmlhttp;
   xmlhttp = new XMLHttpRequest();
   
   xmlhttp.onreadystatechange=function()
   {
    if(xmlhttp.readyState==4 &&xmlhttp.status==200)
    { 
     var obj = JSON.parse(xmlhttp.responseText);
     console.log(pic);
     for(var i = 0;i<obj.length;i++)
     {
      console.log(obj[i].name)
      pic.push(obj[i].name);
      
     }
      //在前端页面画出html代码
     var html = "<img  id=‘img‘ style=‘margin:auto;border:2px solid red;width:80%;cursor: pointer;‘ onclick=‘submit1()‘ src=‘"+pic[0]+"‘ alt=‘###‘/>";
     for(var i = 1;i <pic.length;i++)
     {
      html +="<br/>";
      html +="<img class=‘img‘ style=‘margin:auto;border:2px solid red;width:80%;cursor: pointer;‘ onclick=‘submit1()‘ src=‘"+pic[i]+"‘ alt=‘###‘ />";
     }
     document.getElementById("showPic").innerHTML=html;
    }
   }
   xmlhttp.open("GET","cookie.php",true);
   xmlhttp.send();
  }

前端显示代码

通过ajax获取后台传过来的数据

使用innerHTml写代码

到这里 这个小Demo就差不多完成了。遇到的bug如果能在前端解决的话 就完美了。

 

Javascript 设置cookie 后台php获得cookie 并读出在前端所点击过的图片

标签:

原文地址:http://www.cnblogs.com/joy-wenrou/p/5753133.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!