2009-03-14 8 views
0

J'ai une page sur laquelle l'utilisateur peut créer dynamiquement des groupes d'entrées identiques, les remplir et les envoyer au serveur.Envoi de données hiérarchiques à partir de javascript sur une requête POST à ​​plat

<input type="text" name="firstName"/> 
<input type="text" name="lastName"/> 

Quelle est la meilleure façon d'envoyer ces données au serveur?

Peut-être existe-t-il des moyens simples d'émuler des données hiérarchiques sur une requête POST, en évitant les structures XML?

Différentes valeurs d'attribut "name" ("firstName1", "firstname2")?

Création d'un ID pour chaque groupe ou entrée?

Compter sur l'ordre des paires nom-valeur dans la requête POST?

EDIT: Bien sûr, je connais JSON. Mais juste pour utiliser des hiérarchies minimales, je voudrais suivre la deuxième réponse: Fiez-vous à l'ordre du prénom-nom dans la demande de publication.

Répondre

0

Si les paires de données sont triées, vous n'avez pas besoin d'identifiants supplémentaires car l'ordre identifie déjà les paires de données. Donc, vous pouvez simplement utiliser firstName et lastName pour chaque paire de données:

firstName=First%20Name%201&lastName=Last%02Name%201&firstName=First%20Name%202&lastName=Last%20Name%202&… 

applications côté serveur Vous puis juste combine chaque paire de données.

Mais certains langages/systèmes le font déjà lorsque les données ont un format spécial. En PHP, vous pouvez use the arg[] syntax to automatically get an array of the data.

+0

bien, j'utilise .net, qui utilise NameValueCollection pour Request.Form, qui obtient des valeurs séparées par des virgules cette façon: Request.Form [ "firstName"] // FIRSTNAME1, firstname2 firstname3 il ne prend pas de position de chaque valeur, donc firstName et lastname ne seront pas combinés. (ou est-ce que je manque quelque chose?) – rudnev

+0

Je ne sais pas .NET. Mais avez-vous essayé le paramètre 'index'? (Voir http://msdn.microsoft.com/library/ms525985.aspx) – Gumbo

+0

cela fonctionne si j'ai toujours un prénom et un nom, oui. cela ne fonctionne pas si j'ai des paramètres facultatifs. – rudnev

3

Vous pouvez utiliser la sérialisation JSON au lieu de XML. Du côté du navigateur, vous pouvez utiliser l'une des bibliothèques JSON Javascript comme this one et il y a beaucoup d'implémentations pour les langages côté serveur, que vous pouvez utiliser pour la désérialisation.

+0

Je connais json bien sûr. J'ai juste cherché une décision plus simple pour les petites hiérarchies. – rudnev

Questions connexes