En général, serialize()
sur l'élément de formulaire.
Veuillez noter que plusieurs options <select> sont sérialisées sous la même clé, par exemple
<select id="foo" name="foo" multiple="multiple">
<option value="1">one</option>
<option value="2">two</option>
<option value="3">three</option>
</select>
se traduira par une chaîne de requête qui comprend plusieurs occurrences du même paramètre de requête:
[path]?foo=1&foo=2&foo=3&someotherparams...
ce qui n'est peut-être pas ce que vous voulez dans le backend.
J'utilise ce code JS pour réduire plusieurs paramètres à une clé unique séparée par des virgules (copiée sans vergogne à partir de la réponse d'un commentateur dans un fil de discussion chez John Resig):
function compress(data) {
data = data.replace(/([^&=]+=)([^&]*)(.*?)&\1([^&]*)/g, "$1$2,$4$3");
return /([^&=]+=).*?&\1/.test(data) ? compress(data) : data;
}
qui transforme ce qui précède en:
[path]?foo=1,2,3&someotherparams...
Dans votre code JS, vous l'appeleriez comme ceci:
var inputs = compress($("#your-form").serialize());
J'espère que cela pourra aider.