2013-03-25 52 views
0

我有一組問題和子問題分別。每個問題和子問題都有一個代碼。
檢查表是問題。 子清單是子問題。例如: -如何顯示json中每個清單的輸入標籤和子清單?

代碼問題
4.1問題1
4.1.1子問題1

5.1問題2
5.1.1子問題1
5.1.2小問題2

每個問題旁邊都有複選框。當我點擊它們時,那​​麼子問題應該顯示。

我在這裏的問題是:所有問題的子問題都顯示在第一個問題本身。

這裏是我的代碼:

var json = $.parseJSON(master_checklists); 

     var count_checklists = Object.keys(json).length; 
     //console.log("No of checklists:"+count_checklists); 
      var flag; 
      var data1=''; 

     $(json).each(function(i,val_masterChecklist) 
     { 

      data = ++count + ') ' ; 
      data += val_masterChecklist['code'] + '   ' 
      data += val_masterChecklist['checklist'] + '   ' 


      db.transaction(function (tx) 
      { 
       tx.executeSql('SELECT flag FROM checklists WHERE code ="'+val_masterChecklist['code']+'"', [], function (tx, results) 
       { 
        flag = results.rows.item(0).flag; 

        if(flag == 0) 
        { 
         data = '<input type="checkbox" onclick="all_toggle_flag('+val_masterChecklist['code']+',1)">'+'<br>'; 
         $("#all_checklists").append(data); 
        } 

        else if (flag == 1 || flag == 2) 
        { 

         data = '<input type="checkbox" onclick="all_toggle_flag('+val_masterChecklist['code']+',0)" checked>'+'<br>'; 
         $("#all_checklists").append(data); 
         var checklistcode = chcode_from_schcode(val_masterChecklist['schcode']) 

         if(val_masterChecklist['code']==checklistcode) 
         { 

          data1 = '&nbsp;'+'&nbsp;'+'&nbsp;' 
          data1 += ++count_subchecklist + ') ' ; 

          data1 += val_masterChecklist['subchecklist']; 

          fetch_input_type(val_masterChecklist['data_type'],val_masterChecklist['schcode'],val_masterChecklist['code']); 

         } 


         $("#all_subchecklists").append(data1); 
        } 
       }); 

      }); 

       data += '<div id = "all_subchecklists"></div>'+'<br>'+'<br>'; 
       $("#all_checklists").append(data);   
     }); 

的問題和子問題是從JSON。

請分享你的想法來解決這個問題。

謝謝。

回答

0

我想你應該格式化或構建您的JSON字符串爲Arrays

因此,你有一系列的問題(主要問題),並且對於數組中的每個項目,它都有數組的子問題作爲數組(再次)。

如何實現這一點,是依賴於你的編程語言,並解析JavaScript中的JSON我敢肯定你會發現幫助這裏

0

你可以在被調用的時候,函數使用的地方這個很多該複選框被點擊。

$(this).closest("tr") 

代替

$("#all_checklists").append(data); 

我還用$(本).closest( 「TR」)。找到( 「類名」)找到重複相對於被點擊了什麼位置。