Jquery getJSON remplir sélectionnez menu question
Je suis le remplissage d'un menu de choix avec getJSON. Je me demande si il y a un moyen que je peux utiliser du jQuery .chaque fonction d'apporter à ces valeurs?
Il doit sûrement y avoir un moyen plus simple pour ce faire...peut-être?
Fichier PHP:
<?php
$queryMonth = "SELECT monthID, month FROM months";
$result = $db->query($queryMonth);
while($rowMonth = $db->fetch_assoc($result)) :
$data[] = $rowMonth;
endwhile;
echo json_encode($data);
?>
Le jQuery:
$.getJSON('selectMenus.php', function(data){
$("select.month").append("<option value=" + data[0].monthID + ">" + data[0].month + "</option>");
$("select.month").append("<option value=" + data[1].monthID + ">" + data[1].month + "</option>");
$("select.month").append("<option value=" + data[2].monthID + ">" + data[2].month + "</option>");
$("select.month").append("<option value=" + data[3].monthID + ">" + data[3].month + "</option>");
$("select.month").append("<option value=" + data[4].monthID + ">" + data[4].month + "</option>");
$("select.month").append("<option value=" + data[5].monthID + ">" + data[5].month + "</option>");
$("select.month").append("<option value=" + data[6].monthID + ">" + data[6].month + "</option>");
$("select.month").append("<option value=" + data[7].monthID + ">" + data[7].month + "</option>");
$("select.month").append("<option value=" + data[8].monthID + ">" + data[8].month + "</option>");
$("select.month").append("<option value=" + data[9].monthID + ">" + data[9].month + "</option>");
$("select.month").append("<option value=" + data[10].monthID + ">" + data[10].month + "</option>");
$("select.month").append("<option value=" + data[11].monthID + ">" + data[11].month + "</option>");
});
mon json sortie ressemble à ceci:
[{"monthID":"1","month":"January"},{"monthID":"2","month":"February"},{"monthID":"3","month":"March"},{"monthID":"4","month":"April"},{"monthID":"5","month":"May"},{"monthID":"6","month":"June"},{"monthID":"7","month":"July"},{"monthID":"8","month":"August"},{"monthID":"9","month":"Septemeber"},{"monthID":"10","month":"October"},{"monthID":"11","month":"November"},{"monthID":"12","month":"December"}]
- Peut-on voir le balisage de vos listes de sélection?
- tous vos commentaires disent que l'sélectionner les menus sont vides. Avez-vous vérifié que votre sélection est correcte et le retour du ou des élément(s) que vous essayez de modifier..?
- Basé sur @Richard et @karim79 réponses...je l'ai eu à travailler. Je peux toujours mettre le balisage ici si vous le souhaitez.
- J'ai eu un peu de manque des accolades...c'est pourquoi ils ont été à venir à vide. Une erreur de l'opérateur...et je suis un noob avec cette jQuery choses.
- Certains disent que jQuery est en train de tuer la programmation en JavaScript...
Vous devez vous connecter pour publier un commentaire.
Stocker le code HTML dans une variable et d'ajouter qu'une seule fois à la fin est très important si vous vous souciez de votre les performances de l'application.
Cela devrait fonctionner:
De le grand livre jQuery en Action,voici une façon de faire ce que vous voulez écrire une coutume jQuery commande:
Et puis:
À l'aide de @RaYell de l' méthode....c'est ce qui a fonctionné pour moi:
Merci à tous pour votre aide!!
Vous pouvez utiliser un
for
boucle.Si vous voulez obtenir des performances optimales, vous devez réduire les DOM opérations à un minimum, comme ceci: