关于php cookie操作的问题

gavin239509 2009-10-19 02:08:30
先贴测试代码吧 test.php

<?php
function add($value){
setcookie("CookieName[]",$value); //CookieName换成radio控件的name
}
function getcookie(){

}
?>

<html>
<head>
<meta http-equiv="Content-Language" content="en" />
<meta name="GENERATOR" content="PHPEclipse 1.0" />
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>cookie</title>
</head>
<body onload="getcookie()">
<form action="#" method="post">
<?php
for($i=0;$i<5;$i++){
?>
第<?php echo $i+1;?>选项<br>
男<input type="radio" name="<?php echo $i;?>" value="男" onclick="add('男')"/>
女<input type="radio" name="<?php echo $i;?>" value="女" onclick="add('女')"/><br>
<?php
}
print_r($_COOKIE['CookieName']);
?>
</form>

</body>
</html>

说说期望的效果吧!希望单击任一radio控件时自动添加一个cookie,其name为radio的name(可以看到各选项的name是不同的),值为所选择的radio值;页面重载或刷新时遍历页面的每一个radio控件,之前有做选择的显示其选择项,没做选择的则保持不变。
还有一点不明白,添加cookie要到下一个页面才能生效,或者说要刷新一次。那么是不是要在每次点击radio后都自动刷新一下呢?

求大虾不吝赐教!!!!
...全文
70 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zz1001 2009-10-20
  • 打赏
  • 举报
回复
非得要'鸡屎'才行?
gavin239509 2009-10-19
  • 打赏
  • 举报
回复
谢谢3楼的分享,很好很强大!弱弱问下,如果想在一离开该页面就让COOKIE失效,该怎么弄呢?

就是说一旦提交了表单,或者点击了浏览器上的后退,刚才设置的COOKIE就失效!
清风闲客 2009-10-19
  • 打赏
  • 举报
回复
关注中……
foolbirdflyfirst 2009-10-19
  • 打赏
  • 举报
回复
这几个cookie的js函数一直都在用.共享给你.
<html>
<head>
<meta http-equiv="Content-Language" content="en" />
<meta name="GENERATOR" content="PHPEclipse 1.0" />
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>cookie</title>
</head>
<body onload="load()">
<form action="#" method="post">
<?php
for($i=0;$i<5;$i++)
{
?>
男<input type="radio" name="ra_<?php echo $i;?>" value="男" onclick="add(this)"/>
女<input type="radio" name="ra_<?php echo $i;?>" value="女" onclick="add(this)"/><br>
<?php
}
?>
</form>
<script type='text/javascript'>


function add(o)
{
setCookie(o.name,o.value);
}

function load()
{
var ips = document.getElementsByTagName("input");
for(var i=0,j=ips.length;i<j;i++){
if(ips[i].value == getCookie(ips[i].name))
{
ips[i].checked = true;
}
}
}

function getExpDate(days, hours, minutes) {

var expDate = new Date( );

if (typeof days == "number" && typeof hours == "number" &&

typeof hours == "number") {

expDate.setDate(expDate.getDate( ) + parseInt(days));

expDate.setHours(expDate.getHours( ) + parseInt(hours));

expDate.setMinutes(expDate.getMinutes( ) + parseInt(minutes));

return expDate.toGMTString( );

}

}

// utility function called by getCookie( )

function getCookieVal(offset) {

var endstr = document.cookie.indexOf (";", offset);

if (endstr == -1) {

endstr = document.cookie.length;
}
return unescape(document.cookie.substring(offset, endstr));

}



// primary function to retrieve cookie by name

function getCookie(name) {

var arg = name + "=";

var alen = arg.length;

var clen = document.cookie.length;

var i = 0;

while (i < clen) {

var j = i + alen;

if (document.cookie.substring(i, j) == arg) {

return getCookieVal(j);
}

i = document.cookie.indexOf(" ", i) + 1;

if (i == 0) break;

}

return "";

}



// store cookie value with optional details as needed

function setCookie(name, value, expires, path, domain, secure) {

document.cookie = name + "=" + escape (value) +

((expires) ? "; expires=" + expires : "") +

((path) ? "; path=" + path : "") +

((domain) ? "; domain=" + domain : "") +

((secure) ? "; secure" : "");

}



// remove the cookie by setting ancient expiration date

function deleteCookie(name,path,domain) {

if (getCookie(name)) {

document.cookie = name + "=" +

((path) ? "; path=" + path : "") +

((domain) ? "; domain=" + domain : "") +

"; expires=Thu, 01-Jan-70 00:00:01 GMT";
}
}
</script>
</body>
</html>
gavin239509 2009-10-19
  • 打赏
  • 举报
回复
全部用JS做呢?该怎么实现?
cooledit2730 2009-10-19
  • 打赏
  • 举报
回复
body onload事件的getcookie()是不会调用PHP代码中的getcookie()函数 ,其次就是同个域名下,JS代码写的COOKIE和PHP代码写的COOKIE是一样的。也就是说通过setcookie()函数写的COOKIE可以通过JS代码获取

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧