[英]Multiple values on one cookie
The code I wrote should store multiple user values on one cookie, but for some reason it's not working.我写的代码应该在一个 cookie 上存储多个用户值,但由于某种原因它不起作用。 Can anyone care to explain my mistake?
有人能解释一下我的错误吗?
var delimiter = "#"; function createCookie(name, value, days, path, domain, secure) { if (days) { var date = new Date(); date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); var expires = date.toGMTString(); } else var expires = ""; cookieString = name + "=" + escape(value); if (expires) cookieString += "; expires=" + expires; if (path) cookieString += "; path=" + escape(path); if (domain) cookieString += "; domain=" + escape(domain); if (secure) cookieString += "; secure"; document.cookie = cookieString; } function getCookie(name) { var nameEquals = name + "="; var whole_cookie = document.cookie.split(nameEquals)[1].split(";")[0]; var crumbs = whole_cookie.split(delimiter); } function deleteCookie(name) { createCookie(name, "", -1); } function myCookie() { var name = document.getElementById('name').value; var age = document.getElementById('age').value; var userdata = name + delimiter + age; createCookie("user", userdata); var myUser = getCookie('user'); var myUserArray = myUser.split(delimiter); var cookieName = myUserArray[0]; var cookieAge = myUserArray[1]; alert('The cookie created has the following user information stored on it: \\nName: ' + cookieName '\\nAge: ' + cookieAge); }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script> Please enter your name <input type=text id='name' /> <br> <br>Please enter your age <input type=text id='name' /> <input type=button value='Go!' onClick='myCookie()' />
There are a couple of mistakes in your code:您的代码中有几个错误:
In getCookie
, you forgot to return the value of your cookie !在
getCookie
,您忘记返回 cookie 的值!
function getCookie(name) { var nameEquals = name + "="; var whole_cookie=document.cookie.split(nameEquals)[1].split(";")[0]; return whole_cookie; }
You have two inputs with id name
, I think you want to rename one of them to age
.您有两个带有 id
name
输入,我想您想将其中一个重命名为age
。
Make sure your document is fully loaded before you try to execute your Javascript!在尝试执行 Javascript 之前,请确保您的文档已完全加载! Either do that by wrapping your code around
document.body.onload = function(){ [your code here] }
, or by moving your <script>
tag at the end of your document.要么通过将您的代码围绕
document.body.onload = function(){ [your code here] }
,要么将您的<script>
标签移动到文档的末尾。
You are missing a +
between cookieName
and '\\nAge'
in your alert
.你是缺少一个
+
之间cookieName
和'\\nAge'
在你的alert
。
var delimiter = "#"; function createCookie(name, value, days, path, domain, secure) { if (days) { var date = new Date(); date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); var expires = date.toGMTString(); } else var expires = ""; cookieString = name + "=" + escape(value); if (expires) cookieString += "; expires=" + expires; if (path) cookieString += "; path=" + escape(path); if (domain) cookieString += "; domain=" + escape(domain); if (secure) cookieString += "; secure"; document.cookie = cookieString; } function getCookie(name) { var nameEquals = name + "="; var whole_cookie = document.cookie.split(nameEquals)[1].split(";")[0]; return whole_cookie; } function deleteCookie(name) { createCookie(name, "", -1); } function myCookie() { var name = document.getElementById('name').value; var age = document.getElementById('age').value; var userdata = name + delimiter + age; createCookie("user", userdata); var myUser = getCookie('user'); var myUserArray = myUser.split(delimiter); var cookieName = myUserArray[0]; var cookieAge = myUserArray[1]; alert('The cookie created has the following user information stored on it: \\nName: ' + cookieName + '\\nAge: ' + cookieAge); }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script> Please enter your name <input type=text id='age' /> <br> <br>Please enter your age <input type=text id='name' /> <input type=button value='Go!' onClick='myCookie()' />
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.