Dynamic collapsible set content based on dynamic section in jQuery mobile -


i have json like

[ {     "sid": "1",     "webform_views_add_sublocation_form_tour_name": "4",     "webform_views_add_sublocation_form_location": "location1",     "webform_views_add_sublocation_form_sub_location": "sublocation1" }, {     "sid": "2",     "webform_views_add_sublocation_form_tour_name": "4",     "webform_views_add_sublocation_form_location": "location2",     "webform_views_add_sublocation_form_sub_location": "sublocation1" }, {     "sid": "3",     "webform_views_add_sublocation_form_tour_name": "4",     "webform_views_add_sublocation_form_location": "location1",     "webform_views_add_sublocation_form_sub_location": "sublocation2" }, {     "sid": "4",     "webform_views_add_sublocation_form_tour_name": "4",     "webform_views_add_sublocation_form_location": "location1",     "webform_views_add_sublocation_form_sub_location": "sublocation3" }, {     "sid": "5",     "webform_views_add_sublocation_form_tour_name": "4",     "webform_views_add_sublocation_form_location": "location2",     "webform_views_add_sublocation_form_sub_location": "sublocation2" }, {     "sid": "8",     "webform_views_add_sublocation_form_tour_name": "4",     "webform_views_add_sublocation_form_location": "location1",     "webform_views_add_sublocation_form_sub_location": "sublocation4" }, {     "sid": "10",     "webform_views_add_sublocation_form_tour_name": "6",     "webform_views_add_sublocation_form_location": "location2",     "webform_views_add_sublocation_form_sub_location": "sublocation3" }] 

i want load json colapsible set location section part , sublocation content part.

$(document).on('pageshow','#locations' ,function(event, ui){ var tourid = $.urlparam('tourid'); $('#location-list').empty();          $.getjson('url', function(data) {              $.each(data,function(i,row){                  if(tourid == row.webform_submissions_webform_views_add_sublocation_form__webf){             $('#location-list').append('<div data-role="collapsible"><h3>'+row.webform_submissions_webform_views_add_sublocation_form__webf_1+'</h3><ul data-role="listview"><li><a href="#">'+row.webform_submissions_webform_views_add_sublocation_form__webf_2+'</a></li></ul></div>');             $('#location-list').collapsibleset('refresh');                  }             });         });     }); 

i got output

location1  ---sublocation1 location2  ---sublocation1 location1  ---sublocation2 location1  ---sublocation3 location2  ---sublocation2 

but need this

location1  --sublocation1  --sublocation2  --sublocation2 location2   --sublocation1   --sublocation2 

into collapsible set in jquery mobile how can done this

you need first loop through json create array of locations removing duplicates. , loop again locations create collapsibles. while looping through locations, go through json extract sub locations , append them there parents.

i've added class of location's name each collapsible facilitate appending sub locations.

/* add locations json */ var collapsible = []; /* remove duplicate locations */ var locations = [];  $.each(data, function (i, v) {     collapsible.push(v.webform_views_add_sublocation_form_location);     $.each(collapsible, function (i, v) {         if ($.inarray(v, locations) === -1) {             locations.push(v); /* ["location1", "locations"] */         }     }); });  /* loop through locations */ $.each(locations, function (i, loc) {     var parent = loc;     var elements = '';      /* loop through json */      $.each(data, function (x, sub) {         var subloc = sub.webform_views_add_sublocation_form_sub_location;         if (sub.webform_views_add_sublocation_form_location == parent) {             /* sub locations */             elements += '<li><a href="#">' + subloc + '</a></li>';         }     });      /* create collapsibles based on number of locations        add listview, append sub locations , refresh        collapsible-set @ once */      $("#location-list").append($("<div/>", {         "data-role": "collapsible",             "class": parent     }).append($("<h3/>").text(parent)).append($("<ul/>", {         "data-role": "listview",             "data-theme": "b"     }).append(elements).listview())).collapsibleset('refresh'); }); 

demo


Comments

Popular posts from this blog

Android layout hidden on keyboard show -

google app engine - 403 Forbidden POST - Flask WTForms -

c - Why would PK11_GenerateRandom() return an error -8023? -