/ / Remplir INPUT & SELECT avec des données JSON - jquery, json, formulaires, select, input

Remplissez INPUT & SELECT avec des données JSON - jquery, json, formulaires, select, input

Salut je tente de peupler non seulement l'entréechamps d'une réponse JSON, mais aussi la valeur de la zone de sélection. Je peux obtenir que tous les champs d’entrée soient remplis en conséquence, mais je ne parviens pas à intégrer également le remplissage du champ sélectionné. Si je n'ai qu'un champ de sélection, je peux le faire peupler sans problème, mais comment faire en sorte que le script remplisse les deux entrées et les sélectionne avec les données appropriées? Toute orientation serait appréciée.

Voici l'extrait HTML des éléments de champ:

Email <input type="text" style="width:75%;" name="rEmail" id="rEmail" class="roomForm" placeholder="someone@somewhere.com">

Status <select name="rStatus" id="rStatus"><option value="Disabled">Disabled</option><option value="Enabled">Enabled</option></select>

Mon script ci-dessous renseigne les champs d'entrée et j'ai commenté la sélection ajoutée car elle ajoutait simplement tout le contenu du code JSON à la liste, plutôt que les seules données de la sélection.

            $.ajax({
type:"GET",
url:"getroomfields.php?id="+row_id,success:function(result){
var json = $.parseJSON(result);
var $select = $("#rStatus");
//$select.find("option").remove();
for(key in json[0]){
if(json[0].hasOwnProperty(key))
$("input[name="+key+"]").val(json[0][key]);
//  $select.append("<option value=" + key + " selected>" + json[0][key] + "</option>");
}
}
}); // end ajax

Merci d'avance!

Voici le JSON:

[{
"rID": "1",
"rName": "Test 123 Co",
"rLocation": "Anywhere, World",
"rContact": "John Doe",
"rPhone": "555-555-5555",
"rEmail": "test@someplace.com",
"rStatus": "Enabled",
"rAdded": "05-03-2018"
}]

Réponses:

0 pour la réponse № 1

Il ressemble à votre select des options existent déjà, je ne suis pas sûr de savoir pourquoi vous essayez d’ajouter quoi que ce soit. .val() fonctionne pour les menus déroulants, tout comme les entrées.

J'ai enlevé du code inutile et changé votre sélecteur pour qu'il ne spécifie pas seulement inputs.

for (var key in json[0]) {
if (json[0].hasOwnProperty(key)) {
$("[name=" + key + "]").val(json[0][key]);
}
}

https://jsfiddle.net/vLb89bas/

Vous pouvez également sélectionner par identifiant: $("#" + key)