簡體   English   中英

如何使用JSON數據創建下拉列表

[英]How to create dropdown list using json data

我已經從mysql表中提取數據並解碼json_decode現在我們有了board,class,subject的json數組,它們的關系很像parent-> child-> grandchild(board-> class-> subject)board_auto_id是classList json數組class_auto_id的第一個是classSubjectList的第一個索引

注意:我已經發布了classList和classSubjectList的部分數組

var boardList           =[{"board_auto_id":"1","board_name":"CBSE"},{"board_auto_id":"2","board_name":"ICSE"},{"board_auto_id":"3","board_name":"NCERT"}];
var classList          = {"1":[{"class_auto_id":"1","class_name":"VI"},{"class_auto_id":"2","class_name":"VII"},{"class_auto_id":"3","class_name":"VIII"},{"class_auto_id":"4","class_name":"IX"},{"class_auto_id":"5","class_name":"X"},{"class_auto_id":"6","class_name":"XI"},{"class_auto_id":"7","class_name":"XII"}]};
var classSubjectList   = {"1":[{"class_auto_id":"1","sub_auto_id":"1","subject_name":"Science"},{"class_auto_id":"1","sub_auto_id":"2","subject_name":"Mathematics"},{"class_auto_id":"1","sub_auto_id":"3","subject_name":"Geography : The Earth Our Habitat "},{"class_auto_id":"1","sub_auto_id":"4","subject_name":"History : Our Pasts - I"},{"class_auto_id":"1","sub_auto_id":"5","subject_name":"Civics : Social And Political Life-I"},{"class_auto_id":"1","sub_auto_id":"86","subject_name":"English : Grammar"},{"class_auto_id":"1","sub_auto_id":"139","subject_name":"English : Writing Skills"},{"class_auto_id":"1","sub_auto_id":"155","subject_name":"English : Reading"},{"class_auto_id":"1","sub_auto_id":"209","subject_name":"संस्कृत : व्याकरण"},{"class_auto_id":"1","sub_auto_id":"220","subject_name":"Computer Science"},{"class_auto_id":"1","sub_auto_id":"235","subject_name":"Literature in English ( NCERT)"},{"class_auto_id":"1","sub_auto_id":"238","subject_name":"हिंदी व्याकरण"},{"class_auto_id":"1","sub_auto_id":"253","subject_name":"English : Vocabulary"}],"2":[{"class_auto_id":"2","sub_auto_id":"6","subject_name":"Science"},{"class_auto_id":"2","sub_auto_id":"7","subject_name":"Mathematics"},{"class_auto_id":"2","sub_auto_id":"8","subject_name":"Geography : Our Environment"},{"class_auto_id":"2","sub_auto_id":"9","subject_name":"History : Our Pasts - II"},{"class_auto_id":"2","sub_auto_id":"10","subject_name":"Civics : Social And Political Life - II"},{"class_auto_id":"2","sub_auto_id":"87","subject_name":"English : Grammar"},{"class_auto_id":"2","sub_auto_id":"140","subject_name":"English : Writing Skills"},{"class_auto_id":"2","sub_auto_id":"154","subject_name":"English : Reading"},{"class_auto_id":"2","sub_auto_id":"210","subject_name":"संस्कृत : व्याकरण"},{"class_auto_id":"2","sub_auto_id":"213","subject_name":"Computer Science"}]}

HTML代碼

<select name="boardId" id="boardId" class="style1"><option value="">Select Board</option></select>
<select name="classId" id="classId" class="style1"><option value="">Select Class</option></select>
<select name="subjectId" id="subjectId" class="style1"><option value="">Select Subject</option></select>

您可以執行以下操作將json綁定到下拉列表

<select id="boardList"></select>

  $.each(boardList, function (key, value) {
             console.log(value.board_auto_id);
             appenddata += "<option value = '" + value.board_auto_id + " '>" + value.board_name + " </option>";                        
         });
        $('#boardList').html(appenddata);

boardList下拉列表的OnChange ,您需要從另一個jsonArray過濾記錄,並將其綁定到下一個dropDown,與上述代碼中提到的相同。

通過使用第一個顯示板

jQuery.each(boardList, function(i , item) {
       selectedBoard='';// if you display no board selected 
       boardListHtml += '<option '+ selectedBoard +'   value="'+item.board_auto_id+'">'+item.board_name+'</option>';
    });

jQuery('#boardId').html(boardListHtml);

為每個電話創建類和主題的函數

function getBoardByClass(boardId){
    jQuery('#classId').html('');
    var classChapterListHtml = '<option value="">Select Class</option>';
    jQuery.each(classList, function(i , item) {
       var selectedClass = (boardId ==item.class_auto_id) ? 'selected' : '';    
       classChapterListHtml += '<option '+ selectedClass +'   value="'+item.class_auto_id+'">'+item.class_name+'</option>';
    });
    jQuery('#classId').html(classChapterListHtml);

}


function getSubjectByClass(classID){

    jQuery('#subjectId').html('');
    var subjectListHtml = '<option value="">Select Subject</option>';
    jQuery.each(classSubjectList, function(id , subjectList) {
            if (classID==id) {
            jQuery.each(subjectList, function(subIds , subjectName) {

                subjectListHtml += '<option value="'+subjectName.sub_auto_id+'">'+subjectName.subject_name+'</option>';

                });

            }

    });

    jQuery('#subjectId').html(subjectListHtml);

}

最后更改類和主題過濾器的事件

$("#boardId").change(function() {
        jQuery('#classId').html('');
        getBoardByClass($(this).val());

        });

$("#classId").change(function() {
        jQuery('#subjectId').html('');
        getSubjectByClass($(this).val());

        }); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM