javascript
2016-11-08 240 views 1 likes 
1

我想傳遞一個數組並將其作爲url參數添加到頁面上的鏈接,因爲稍後在服務器端,我需要數組中的值。我應該怎麼做?Javascript - 如何傳遞數組作爲url參數

myArray = ['aaa', 'bbb', 'ccc']; 

$('#myLink').attr({"href" : '/myLink?array=' + myArray}); 

我不確定這是否是正確的方法?

+2

*「我應該怎樣做?「*這實際上取決於您使用的是哪種服務器端語言,以及它希望如何格式化數據。例如。服務器期望JSON?或每個值的參數?用逗號分隔的值列表?還有別的嗎? –

+0

既然你使用jQuery,你可以試試'$ .param({array:myArray},true);' – haim770

+0

答案是你不能,而不是Javascript。你最終得到的所有解決方案實際上並不是你想要通過的。你可以做的是傳遞一個像參數一樣的數組,並返回給你服務器端的語言。爲什麼你需要通過整個陣列呢? – Marco

回答

4

可序列化JSON:

myArray = ['aaa', 'bbb', 'ccc']; 
var arrStr = encodeURIComponent(JSON.stringify(myArray)); 
$('#myLink').attr({ href: '/myLink?array=' + arrStr }); 

如果您解析(下頁)是通過JavaScript做太多,你會反過來使用JSON.parse()。在PHP中,它將是json_decode()

2

試試這個

$('#myLink').attr({"href" : '/myLink?array=' + myArray.join(',')}); 

服務器上:捕獲和分割的數據。

1

它不應該依賴於服務器端:通過URI標準規範,所有參數必須有一個名稱並且應該有一個值。但可以有幾個參數具有相同的名稱,這是序列化數組的正確方法:

http://server/context?array=aaa&array=bbb&array=ccc&otherparameter=x

你可以做這樣的:

var s=""; 
for (var i=0;i< myArray.length;i++) 
{ 
    s+="&myArray="+myArray[i]; 
} 
var url="http://server/context?"+s; 
相關問題