问题1:js接收php传过来的cookie数组之后,怎么遍历出来
问题2:js接收到的cookie不是已经通过unescape转换编码了吗?,怎么取到的还是乱码remind.php setcookie("remindcookie[0]","2011-08-12 15:30:00");
setcookie("remindcookie[1]","2011-08-15 14:30:00");
setcookie("remindcookie[2]","2011-08-09 15:45:00");
remindJS.js
function showremind()
{
var arr=getCookie("remindcookie");//这个不是数组吗???怎么这样遍历不出来啊??
for(var i=0;i<arr.length;i++)
{
alert(arr[i]);
}}
function getCookie(Name)//得到cookie
{
var search = Name + "=";
if(document.cookie.length > 0)
{
offset = document.cookie.indexOf(search);
if(offset != -1)
{
offset += search.length;
alert("offset"+offset);
end = document.cookie.indexOf(";", offset);
if(end == -1) end = document.cookie.length ;
unescape(document.cookie.substring(offset, end));
}//if 2 end
}//if 1 end
}
问题2:js接收到的cookie不是已经通过unescape转换编码了吗?,怎么取到的还是乱码remind.php setcookie("remindcookie[0]","2011-08-12 15:30:00");
setcookie("remindcookie[1]","2011-08-15 14:30:00");
setcookie("remindcookie[2]","2011-08-09 15:45:00");
remindJS.js
function showremind()
{
var arr=getCookie("remindcookie");//这个不是数组吗???怎么这样遍历不出来啊??
for(var i=0;i<arr.length;i++)
{
alert(arr[i]);
}}
function getCookie(Name)//得到cookie
{
var search = Name + "=";
if(document.cookie.length > 0)
{
offset = document.cookie.indexOf(search);
if(offset != -1)
{
offset += search.length;
alert("offset"+offset);
end = document.cookie.indexOf(";", offset);
if(end == -1) end = document.cookie.length ;
unescape(document.cookie.substring(offset, end));
}//if 2 end
}//if 1 end
}
php用print_r
js用alert(typeof())
还有就是怎么能输出cookie‘数组’啊???...function getCookie(Name)//得到cookie
{
var search = Name + "=";
if(document.cookie.length > 0)
{
offset = document.cookie.indexOf(search);
if(offset != -1)
{
offset += search.length;
end = document.cookie.indexOf(";", offset);
if(end == -1) end = document.cookie.length ;
return document.cookie.substring(offset, end);
}//if 2 end
}//if 1 end
}
php setcookie函数会对值进行urlencode编码 setrawcookie则不进行编码
与js的unescape是不一样的<?php
$date="2011-08-30 09:14:00";
$date1="这是中文";
setrawcookie("needDate",escape($date1));
/* xuzuning */
function escape($str) {
preg_match_all("/[\x80-\xff].|[\x01-\x7f]+/",$str,$r);
$ar = $r[0];
foreach($ar as $k=>$v) {
if(ord($v[0]) < 128)
$ar[$k] = rawurlencode($v);
else
$ar[$k] = "%u".bin2hex(iconv("GB2312","UCS-2",$v));
}
return join("",$ar);
} ?>
<script language="javascript">
function getCookie(Name)
{
var search = Name + "=";
if(document.cookie.length > 0)
{
offset = document.cookie.indexOf(search);
if(offset != -1)
{
offset += search.length;
end = document.cookie.indexOf(";", offset);
if(end == -1) end = document.cookie.length ;
alert(unescape(document.cookie.substring(offset, end)));
}//if 2 end
}//if 1 end
}
</script>
<input type="button" onclick="getCookie('needDate')">
嗯,知道了,中文乱码原来是这样...
可是前辈,那我在php里定义的那个cookie,其实我是从数据库查出来,再循环出来的,如下
setcookie("remindcookie[0]","2011-08-12 15:30:00");
setcookie("remindcookie[1]","2011-08-15 14:30:00");
setcookie("remindcookie[2]","2011-08-09 15:45:00");
......那这些值在js中应该怎么取出来啊...
getCookie(remindcookie[0]);
getCookie(remindcookie[1]);
getCookie(remindcookie[2]);
var cookiecount=3;
for(var i=0;i<cookiecount;i++)
{
var a=getCookie('showworkremind('+i+')');
document.writeln(a); }