javascript - Jquery getJSON 填充选择菜单问题

标签 javascript jquery json ajax getjson

我正在使用 getJSON 填充选择菜单。我想知道是否有一种方法可以使用 jQuery 的 .each 函数来引入这些值?

肯定有一种更简单的方法来实现这一点......也许?

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);
?>

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>");
});

我的 json 输出如下所示:

[{
  "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"
}]

最佳答案

$.getJSON('selectMenus.php', function(data){
    var html = '';
    var len = data.length;
    for (var i = 0; i< len; i++) {
        html += '<option value="' + data[i].monthId + '">' + data[i].month + '</option>';
    }
    $('select.month').append(html);
});

如果您关心应用性能,将 HTML 代码存储在变量中并在末尾仅附加一次非常重要。

关于javascript - Jquery getJSON 填充选择菜单问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1502649/

相关文章:

Javascript、Jquery 在本地主机中工作正常,但在部署的站点中却不行?

javascript - 是否可以使用 casper 框架对元素执行右键单击?

c# - 在 C# 中反序列化之前从 JSON 字符串中删除非法字符

javascript - Typed.js 不工作

javascript - 如何在 AngularJS 中格式化 JSON 日期

javascript - 无法为变量设置新值

javascript - Angular View ,如果未经身份验证,则显示单个 View

javascript - 如果在 ng-repeat 上为真,AngularJS 会尝试将一个类添加到多个值

javascript - Ionic 下拉选定的问题

javascript - 如何隐藏可打印版本的 TidioChat 侧边栏?