Soundboy39 Posté 16 Septembre 2012 Posté 16 Septembre 2012 Bonjour à toutes et à tous, Voilà j'ai un script qui permet de remplir automatiquement un formulaire en fonction de données envoyées en Json. Pour ce qui est des inputs et des select ça fonctionne bien par contre pour les checkbox à choix multiples c'est plus compliqué, puisque leurs valeurs sont stockées dans un sous-tableau. Voilà le code Javascript complet : <script type="text/javascript">//le tableau principal au format Json, le sous tableau est celui associé à la clé "desert"var params = {"entree":"orange","principal":"haricots","desert":["tarte","yahourt"]};//la boucle de parcour du tableau principalefor (key in params){var balise = $('#'+ key ).get(0).nodeName.toLowerCase();//alert(balise);if(balise == 'input'){var input_type = $('#'+ key ).attr('type');if(input_type == 'text'){$('#'+ key ).val(params[key]);}else if(input_type == 'checkbox') //traitement du sous-tableau{ //ne fonctionne pas, seul le 1er paramètre du sous-tableau est pris en compte...$('#'+ key ).val(params[key]); //ne fonctionne pas du toutfor(var i = 0; i < params[key].length; i++){$('#'+ params[key][i] ).val(params[key]).attr('checked','checked');}}}else if(balise == 'select'){$('#'+ key ).val(params[key]).attr('selected','selected');}}</script> Comme vous pouvez le voir pour l'instant j'en suis à 2 solutions, une qui prend en compte uniquement la première valeur, est une deuxième qui ne fonctionne pas... Je pensais à éventuellement extraire le sous-tableau de la boucle principale pour le traiter dans une autre boucle mais je ne vois pas comment faire... ou peut être y a t'il une autre solution ?? Merci beaucoup pour votre aide et bon dimanche !!
Portekoi Posté 17 Septembre 2012 Posté 17 Septembre 2012 Bonjour, Et si dans ton Else If (input_type == 'checkbox'), tu transformes en tableau ainsi : var valeurs= params[key].split(',');for(var valeur in valeurs){ $('input[id='+valeurs[valeur]+']').prop("checked", true);} Pas certain du split en direct, sinon, passes par une variable "temp". A tester
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant