2011-06-13 46 views
0

這裏轉換是JavaScript數組到PHP數組轉換代碼.....這是用餅乾做...如何JavaScript數組到PHP數組

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的任何可能的方式array to php without cookies ....

+3

json encode然後存儲到cookie中,解碼回到php – venimus 2011-06-13 13:12:21

+0

@Marcel Korpel @Luzhin @venimus我需要將javascript數組轉換爲php數組而不使用cookie ...我們該怎麼做......任何有效的方法?? ......... – learnfromothers 2011-06-13 13:15:48

+3

我假設你將在PHP腳本中使用它,那麼你可以使用'a_php = encodeURIComponent(JSON.stringify(a))'然後使用a_php作爲GET或POST參數使用它的php腳本。在那裏你解碼它與'json_decode(rawurldecode($ _ GET ['a_php']))' – venimus 2011-06-13 13:29:16

回答

4

您應該將它發佈到另一個(或當前)頁面以使用PHP進行處理。如果您不希望頁面被重定向使用AJAX將數組發送到PHP。

+0

@Amir我需要將JavaScript數組轉換爲PHP數組而不使用Cookie ...我們怎麼做....任何有效的方式?? ......... – learnfromothers 2011-06-13 13:16:01

+0

我沒有談論cookies。直接使用POST發送數組,然後用php解析。 – Amir 2011-06-13 13:28:25

+0

@Amir哦,謝謝....... – learnfromothers 2011-06-13 13:42:34

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

+0

我需要將JavaScript數組轉換爲沒有使用cookie的php數組......我們怎麼能這樣做......任何有效的方式?? ......... – learnfromothers 2011-06-13 13:16:31

+5

@learn:哦,拜託,你真的讀過這些答案並自己嘗試一下嗎?你只是一遍又一遍地複製同一個評論。 – 2011-06-13 13:17:55

+0

@Marcel Korpel任何包需要在那裏使用JSON? – learnfromothers 2011-06-13 13:41:37

3

在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); 

這樣簡單。

+0

我需要將javascript數組轉換爲php數組而不使用cookie ......我們該怎麼做......任何有效的方式?? ......... – learnfromothers 2011-06-13 13:16:16

+0

你可以任何你喜歡的方式將JS's' var傳遞給PHP - POST,GET等等...... – JAAulde 2011-06-13 17:07:45

3

有時不能更改服務器端來將輸出更改爲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); 

你會有那麼varible $ C導致輸出。這不是理想的解決方案。它不會涵蓋每個javascript數組,但如果您在某些數組中遇到問題,則可以更改它以涵蓋您的情況。