如何将javascript数组转换为php数组

时间:2011-06-13 13:09:31

标签: php javascript

这里是将javascript数组转换为php数组的代码.....这是用cookies完成的......

function getCookie(c_name)
{
var i,x,y,ARRcookies=document.cookie.split(";");
for (i=0;i<ARRcookies.length;i++)
  {
  x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
  y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
  x=x.replace(/^\s+|\s+$/g,"");
  if (x==c_name)
    {
    return unescape(y);
    }
  }
}

function setCookie(c_name,value,exdays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
document.cookie=c_name + "=" + c_value;
}

function checkCookie()
{
    var a_php = "";
    var a=new Array(); 
/*

a[0]="Saab";       
a[1]="Volvo";
a[2]="BMW";
a[3]="sample"

a[4]="Saab";       
a[5]="Volvo";
a[6]="BMW";
a[7]="sample"


a[8]="Saab";       
a[9]="Volvo";
a[10]="BMW";
a[11]="sample"


a[12]="Saab";       
a[13]="Volvo";
a[14]="BMW";
a[15]="sample"

a[16]="Saab";       
a[17]="Volvo";
a[18]="BMW";
a[19]="sample"

a[20]="Saab";       
a[21]="Volvo";
a[22]="BMW";
a[23]="sample"

a[24]="Saab";       
a[25]="Volvo";
a[26]="BMW";
a[27]="sample"
*/

for(var t=0;t<350;t++)
    a[t]="hello"+t;


    for(var count=0;count<a.length;count++)
        a_php = a_php+a[count]+",";
    setCookie("new_cookie1",a_php,3);


}
</script>

是否有任何可能的方法将javascript数组转换为没有cookie的PHP ....

4 个答案:

答案 0 :(得分:5)

有时无法更改服务器端以将输出更改为json。我在表格中输入了 [ ['azz2465014416', '8', '22'],['azz2465014418', '10', '22'],['azz2465014420', '12', '22'],['azz2465014422', '14', '22'] ]

我使用这个php代码从这个输入获取php数组:

<?php
$a = "[ ['azz2465014416', '8', '22'],['azz2465014418', '10', '22'],['azz2465014420', '12', '22'],['azz2465014422', '14', '22'] ]";

$b = '$c = '.(str_replace(array('[',']'),array('array(',')'),$a)).';';
eval($b);
print_r($c);

然后您将获得可变$ c结果输出。这不是理想的解决方案。它不会涵盖每个javascript数组,但是如果你遇到某些数组有问题,你可以改变它来覆盖你的情况。

答案 1 :(得分:4)

您应该将其发布到另一个(或当前)页面以使用PHP进行处理。如果您不希望重定向页面使用AJAX将数组发送到PHP。

答案 2 :(得分:4)

在JS中:

var a, s;
a = [ 'one', 'two', 'three'];
s = JSON.stringify( a );

//Do something to send `s` to the server in a request

在PHP中,假设s来自cookie中的客户端

<?php
$a = json_decode( $_COOKIE['s'], true );

这很简单。

答案 3 :(得分:2)

您可以使用JSON执行此操作。 在JavaScript端,只需使用JSON.stringify(theArray);创建该数组的JSON表示。 在PHP中,您可以使用json_decode(theString, true);来获取数组 链接: http://php.net/manual/function.json-decode.php http://en.wikipedia.org/wiki/JSON