将JSON项的数组添加到列表框中

时间:2015-11-29 16:32:49

标签: javascript php jquery arrays json

当用户从select_level下拉框中选择一个值时,函数会返回要插入多选列表的JSON值数组。目前代码只接受数组中的第一项并将其添加到列表中,但我需要从数组中获取所有值并将它们作为不同选项添加到列表中。实现这一目标的最佳方法是什么?

以下是目前的代码:

<script>
$(document).ready(function(){
    $("#select_level<?php echo $id;?>").change(function(){      
            var level   = $("#select_level<?php echo $id;?>").val();
            var user_id = <?php echo $_REQUEST['user_id']?>;
            $.ajax({
                url:"./ajax_spdata.php?level="+level+"&user_id="+user_id+"&ajax=spdata",
                dataType:"json"
            }).success(function(data){
$("#spdata_level<?php echo $id;?>").html('<option value='+data[0]+'>'+data[0]+'</option>');
            });

    });
});
</script>

以下是spdata.php中执行的内容

if($level == 0){
                $spdata_array[] = "Value 1";
                $spdata_array[] = "Value 2";
                $spdata_array[] = "Value 3";
                $spdata_array[] = "Value 4";
    }
        if($level == 1){
                $spdata_array[] = "Value 5";
                $spdata_array[] = "Value 6";
                $spdata_array[] = "Value 7";
                $spdata_array[] = "Value 8";
    }
echo json_encode($spdata_array, JSON_FORCE_OBJECT);

如果他们从select_level下拉列表中选择1,则返回以下内容:

对象{1:“值1”,2:“值2”,3:“值3”,4:“值4”}

1 个答案:

答案 0 :(得分:1)

尝试使用$.each()

$.each(data, function(key, value) {
  $("<option>", {value:value, html:value}).appendTo("#spdata_level")
})