【问题标题】:Append items to dropdown jQuery / Ajax将项目追加到下拉 jQuery / Ajax
【发布时间】:2013-10-17 19:51:17
【问题描述】:

这是将选项值附加到下拉列表的正确方法吗?我正在从 ajax 取回数据(使用 alert(data); 对其进行了测试),但它似乎没有附加到下拉列表中(在 jQuery 中生成)。

$(document).on('focusout', '.generate', function(InputField) 
{
    var name = ($('.generate').val());
    $.post("<?php echo site_url('project/testFunction'); ?>",
    {
        name: name,                                
    },
    function(data, status) 
    {
        var items="";

        $.each(data, function(index, item)
        {
            items += "<option>" + item.Description + "</option>";
        });

        $("#typeSoftware").append(items);
    });
});

生成的下拉菜单:

$('#hardsoft tr:last').after('<tr><td>Software : </td><td>
  <select id="typeSoftware" class"add" name="softwarenames[]"/></td></tr>');

控制器中的功能:

public function testFunction()
{
    $name = trim($this->input->post('name'));
    $this->load->model('mProject');
    $test = $this->mProject->testFunction($name);

    echo json_encode($test);
}

结果:

数据库功能:

 function testFunction($id) {

    $query = $this->db->get_where('R_InstalledItems', array('Description' =>$id));
    return $query->result();

}

【问题讨论】:

  • 我们能看到数据响应吗
  • name: name, 中的逗号只是您帖子中的错字还是代码中的错字?
  • 它也在代码中。我删除了它,但没有效果。感谢您的关注。
  • 告诉我是否可行,我为您设置了一些格式不佳的虚拟数据

标签: jquery ajax json codeigniter post


【解决方案1】:

查看此示例,该示例适用于我的开发测试。

<script type="text/javascript">
    $(document).ready(function () {

        $("#dropdownCountry").change(function (e) {
            var obj1 = { Country: $("#dropdownCountry").val() };
            $.ajax({
                type: "POST",
                contentType: "application/json; charset=utf-8",
                url: "http://localhost:3323/AjaxWebService.asmx/getState",
                data: JSON.stringify(obj1),
                dataType: "json",
                success: function (data1) {
                    var appenddata1 = "";
                    //alert(data1.d);
                    var jsonData1 = JSON.parse(data1.d);
                    for (var i = 0; i < jsonData1.length; i++) {
                        appenddata1 += "<option value = '" + jsonData1[i].SHORT_NAME + " '>" + jsonData1[i].FULL_NAME + " </option>";
                    }
                    $("#dropdownState").append(appenddata1);
                }
            });
        });
    });
</script>

machinesyntax.blogspot.my/2014/01/how-to-append-dropdownlist-using-jquery.html

这个想法是从 webservice 读取 JSON 数据并附加到下拉列表。

如果选择发生变化,不要忘记删除之前的附加值。你也可以参考这篇文章。

How to remove previous append value

【讨论】:

    【解决方案2】:

    试试这个:-

        function(data, status) 
        {
            var items="";
    
            $.each(data, function(index, item)
            {
                $("#typeSoftware").append("<option>" + item.Description + "</option>");
            }); 
        });
    

    【讨论】:

      【解决方案3】:

      在 $.each 之前,插入:

       data = $.parseJSON(data);
      

      这使它起作用了。

      【讨论】:

        【解决方案4】:

        $(function()
        {
        var items="";
        $.getJSON("adminlist/classdropdown.php",function(data)
        {
        $.each(data,function(index,item) 
        {
        items+="<option value='"+item.classname +"'>"+item.classname +"</option>";
        });
        
        $("#eclass").append(items);
        });
        });  

        会很好用的

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-05-25
          • 1970-01-01
          • 1970-01-01
          • 2012-08-19
          • 2010-11-09
          • 1970-01-01
          • 2015-06-12
          相关资源
          最近更新 更多