Je voudrais passer un tableau et ajouté à un lien sur ma page en tant que paramètre d'URL, car plus tard côté serveur, j'ai besoin des valeurs du tableau. Comment dois-je faire ça?
myArray = ['aaa', 'bbb', 'ccc'];
$('#myLink').attr({"href" : '/myLink?array=' + myArray});
Je ne sais pas si c'est la bonne façon de procéder?
Vous pouvez sérialiser le JSON:
myArray = ['aaa', 'bbb', 'ccc'];
var arrStr = encodeURIComponent(JSON.stringify(myArray));
$('#myLink').attr({ href: '/myLink?array=' + arrStr });
Si votre analyse (sur la page suivante) est également effectuée via JavaScript, vous utiliserez à l'inverse JSON.parse () . En PHP ce serait json_decode () .
Il ne doit pas dépendre du côté serveur: selon la spécification standard URI, tous les paramètres doivent avoir un nom et une valeur. Mais il peut y avoir plusieurs paramètres avec le même nom, ce qui est la bonne façon de sérialiser un tableau:
http: // serveur/contexte? array = aaa & array = bbb & array = ccc & otherparameter = x
Vous pouvez le faire comme ceci:
var s="";
for (var i=0;i< myArray.length;i++)
{
s+="&myArray="+myArray[i];
}
var url="http://server/context?"+s;
essaye ça
$('#myLink').attr({"href" : '/myLink?array=' + myArray.join(',')});
sur le serveur: capture et partage des données.
J'irais avec cette approche,
var myArray = ['aaa', 'bbb', 'ccc', ];
var myArrayQry = myArray.map(function(el, idx) {
return 'myArray[' + idx + ']=' + el;
}).join('&');
// myArray[0]=aaa&myArray[1]=bbb&myArray[2]=ccc
Ensuite, je récupère les paramètres de requête URL sous forme de tableau côté serveur.