我想傳遞一個數組並將其作爲url參數添加到頁面上的鏈接,因爲稍後在服務器端,我需要數組中的值。我應該怎麼做?Javascript - 如何傳遞數組作爲url參數
myArray = ['aaa', 'bbb', 'ccc'];
$('#myLink').attr({"href" : '/myLink?array=' + myArray});
我不確定這是否是正確的方法?
我想傳遞一個數組並將其作爲url參數添加到頁面上的鏈接,因爲稍後在服務器端,我需要數組中的值。我應該怎麼做?Javascript - 如何傳遞數組作爲url參數
myArray = ['aaa', 'bbb', 'ccc'];
$('#myLink').attr({"href" : '/myLink?array=' + myArray});
我不確定這是否是正確的方法?
可序列化JSON:
myArray = ['aaa', 'bbb', 'ccc'];
var arrStr = encodeURIComponent(JSON.stringify(myArray));
$('#myLink').attr({ href: '/myLink?array=' + arrStr });
如果您解析(下頁)是通過JavaScript做太多,你會反過來使用JSON.parse()。在PHP中,它將是json_decode()。
試試這個
$('#myLink').attr({"href" : '/myLink?array=' + myArray.join(',')});
服務器上:捕獲和分割的數據。
它不應該依賴於服務器端:通過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;
*「我應該怎樣做?「*這實際上取決於您使用的是哪種服務器端語言,以及它希望如何格式化數據。例如。服務器期望JSON?或每個值的參數?用逗號分隔的值列表?還有別的嗎? –
既然你使用jQuery,你可以試試'$ .param({array:myArray},true);' – haim770
答案是你不能,而不是Javascript。你最終得到的所有解決方案實際上並不是你想要通過的。你可以做的是傳遞一個像參數一樣的數組,並返回給你服務器端的語言。爲什麼你需要通過整個陣列呢? – Marco