如何从数据库中检索数据并使用javascript将其放入下拉菜单中

时间:2014-01-20 21:05:40

标签: javascript jquery

我写了一个简单的Select SQL语句,它将从数据库中选择所有数据,使用这些数据我希望它在我的下拉菜单中显示它。这是我的Ajax调用:

var ajReq = new XMLHttpRequest();
$(document).ready(function () {
    AjaxMethod();
});

function AjaxMethod() {
    ajReq.abort();
    ajReq = $.ajax({
        type: "POST",
        url: "Services/Page.asmx/GetData",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (data) {}
    });
}

这是我的下拉菜单:

 <div class="dropdownBox">
        <div class="btn-group">
            <button type="button" id="something" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
                Please Select you Data:
  <span class="caret"></span>
            </button>
            <ul class="dropdown-menu">


            </ul>
        </div>
    </div>
  

所以问题是如何让Javascript将数据显示到我的下拉菜单中,我在加载页面时调用我的AjaxMethod。   我根据答案进行了编辑,但是我得到了一个错误:当我点击下拉菜单时,我得到了[object Object],[object Object] ...错误。这适用于我拥有的所有投递箱。当我向$ each添加一个断点时(数据,函数(i) - 我得到[对象对象]作为消息但是当我点击+我可以看到我的所有数据来自数据库但是当我悬停并点击+时它说:无法评估儿童。这意味着什么

2 个答案:

答案 0 :(得分:0)

如果data是一个字符串数组,您可以执行类似这个未经测试的示例:

success: function (data) {
    var opts = '';
    $.each(data, function(i){
        opts += '<option>' + this + '</option>';
    };
    $('.dropdown-menu').html(opts);
}

答案 1 :(得分:0)

  • 进行ajax调用
  • 在脚本中,查询数据库以获取包含所需信息的行
  • 以json格式返回生成的行数组
  • 在回调函数内部,使用$ .parseJSON函数将json编码的响应解码为js数组。
  • 清空ul元素。
  • 为js数组中的每个项创建li元素。

请注意,如果您希望将事件处理程序附加到lis,则必须将其附加到ul标记,例如$('ul')。on('click','li',function() {...});