2013-03-25 66 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”)。找到( “类名”)找到重复相对于被点击了什么位置。