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

  最近需要些一个小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如果能在前端解决的话 就完美了。

时间: 2024-10-13 12:10:06

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

javascript设置和获取cookie的方法

设置cookie的方法,和获取cookie的方法如下 设置cookie document.cookie="name="+value; //获取cookie其中index是cookie的名称 function getCookie(index){ var allcookies = document.cookie; var cookie_pos = allcookies.indexOf(index); if (cookie_pos != -1){ cookie_pos += index.le

javascript 设置cookie(转)

原文地址:http://www.cnblogs.com/xiaochaohuashengmi/archive/2010/06/13/1757658.html 设置cookie 每个cookie都是一个名/值对,可以把下面这样一个字符串赋值给document.cookie: document.cookie="userId=828"; 如果要一次存储多个名/值对,可以使用分号加空格(; )隔开,例如: document.cookie="userId=828; userName=h

javascript 设置cookie和取得cookie

代吗实例: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>cookie</title> <script> function setCookie(name,value,expires,path,domain,secure) { var cookieName=encodeURIComponent

用javascript在客户端删除某一个cookie键值对

下面这个方法展示如何在客户端浏览器上用javascript删除某一个cookie键值对. //用javascript删除某一个cookie的方法,该方法传入要删除cookie的名称 function RemoveCookie(cookieName) { var cookies = document.cookie.split(";");//将所有cookie键值对通过分号分割为数组 //循环遍历所有cookie键值对 for (var i = 0; i < cookies.leng

jquery.cookie.js &amp;&amp; java后台代码 操作cookie实现记住当前用户输入信息代码

下载jquery.cookie.js地址看这里:http://pan.baidu.com/s/1gdCPaN5 //初始化页面时验证是否记住了密码 $(document).ready(function() {   if ($.cookie("rmbUser") == "true") { //判断上次登陆是否已记住密码 $("#rmbUser").attr("checked", true); //设置记住密码复选框选中 //$.

读javascript高级程序设计17-在线检测,cookie,子cookie

一.在线状态检测 开发离线应用时,往往在离线状态时把数据存在本地,而在联机状态时再把数据发送到服务器.html5提供了检测在线状态的方法:navigator.onLine和online/offline事件. 1.navigator.onLine属性 表示当前的网络状态是否在线,true表示在线,false表示离线.当网络状态变化时,该属性也会随之变化. 2.online和offline事件 HTML5提供了这两个事件,会在网络状态变化时触发.online在网络由离线变为在线时触发:offline

javaScript 笔记(4) -- 弹窗 &amp; 计时事件 &amp; cookie

弹窗 可以在 JavaScript 中创建三种消息框:警告框.确认框.提示框. 警告框:经常用于确保用户可以得到某些信息. 当警告框出现后,用户需要点击确定按钮才能继续进行操作. 语法: window.alert("sometext"); // window.alert() 方法可以不带上window对象,直接使用alert()方法. 确认框:通常用于验证是否接受用户操作. 当确认卡弹出时,用户可以点击 "确认(true)" 或者 "取消(false)&q

PHP中设置、使用、删除Cookie方法

1.设置Cookie PHP用SetCookie函数来设置Cookie.必须注意的一点是:Cookie是HTTP协议头的一部分,用于浏览器和服务器之间传递信息,所以必须在任何属于HTML文件本身的内容输出之前调用Cookie函数. SetCookie函数定义了一个Cookie,并且把它附加在HTTP头的后面,SetCookie函数的原型如下: int SetCookie(string name, string value, int expire, string path, string doma

js封装Cookie操作 js 获取cookie js 设置cookie js 删除cookie

每天学习一点点 编程PDF电子书.视频教程免费下载:http://www.shitanlife.com/code var CookieUtil = { // 设置cookie set : function (name, value, expires, domain, path, secure) { var cookieText = ""; cookieText += encodeURIComponent(name) + "=" + encodeURIComponen