问题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 

解决方案 »

  1.   

    逐步调试吧
    php用print_r
    js用alert(typeof())
      

  2.   

    编码这个问题,我还是不理解,如果我在js中用escape()编码了,在取出值以后需要使用unescape()进行解码才能得到原来的cookie值,可我没有啊,直接从php页面传过来的,像下面那样就不行了....
    还有就是怎么能输出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 
      

  3.   

    js cookie没有数组的概念
    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')">
      

  4.   


    嗯,知道了,中文乱码原来是这样...
    可是前辈,那我在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中应该怎么取出来啊...
      

  5.   

    你那里不是有个getCookie()函数吗? 把cookie名传进去就可以获取了啊。
    getCookie(remindcookie[0]);
    getCookie(remindcookie[1]);
    getCookie(remindcookie[2]);
      

  6.   

    嗯,可这里面怎么还有undefined值啊?????
    var cookiecount=3;
    for(var i=0;i<cookiecount;i++)
    {
         var a=getCookie('showworkremind('+i+')');
         document.writeln(a); }