javascript - How to display multidimensional array of json string in a table -


i passed data fetched database via ajax displayed in html page. managed pass in multidimensional array php script. json string i'm unsure on how display output in html table.

script

$("#submit").on("click",function()     {            $("#set_setting").submit(function(){                          data = $(this).serialize()             $.ajax({               type: "post",               datatype: "html",               url: "submit_setting.php", //relative or absolute path response.php file               data: data,               success: function(data) {                   alert(data);               //hide form               $("#set_setting").slideup("slow");               //show result              /* (i = 0; < data.length; i++) {                   console.log(data);                   $(".the-return").html(data);               }*/                console.log(data);                 $(".the-return").html(data);                }              });             return false;            });          }); 

php script

$json=array(); array_push($json,array("type"=>$cartype,"maker"=>$carmaker)); echo json_encode($json); 

output of data

hondahonda maker[{"type":["flying car","3 wheleer","weird car","miracle car","tata car","see car","star car","mn car","jkcar","car test","ting","honda"],"maker":["test maker","diamond car","ruby car","dont know car","titi car","saw car","moon car","ty car","ty car","car maker test","ting maker","honda maker"]}] 

how display json string in html table?

here's vanilla js trick. it's worth mentioning you're returning array of results, has single element in it. cause parsedresult[0] in code. if wanted return data multiple html tables, you'd have parsedresult[1], parsedresult[2] etc, etc. code doesn't account such situation - i've hard-coded work first.

result: (excuse text formatting of html table, if would)

type    maker flying car  test maker 3 wheleer   diamond car weird car   ruby car miracle car dont know car tata car    titi car see car saw car star car    moon car mn car  ty car jkcar   ty car car test    car maker test ting    ting maker honda   honda maker 

code:

<!doctype html> <html> <head> <script> "use strict"; function newel(tag){return document.createelement(tag);}  window.addeventlistener('load', ondocloaded, false);  var dummyresultstring = '[{"type":["flying car","3 wheleer","weird car","miracle car","tata car","see car","star car","mn car","jkcar","car test","ting","honda"],"maker":["test maker","diamond car","ruby car","dont know car","titi car","saw car","moon car","ty car","ty car","car maker test","ting maker","honda maker"]}]';  function ondocloaded() {     var ajaxresult = dummyresultstring;     var tblofresults = parseandcreatetable( ajaxresult );     document.body.appendchild(tblofresults); }  function parseandcreatetable(inputstring) {     var rawresult = inputstring;     var parsedresult = json.parse(rawresult);     var tableheadings = [];      // extract name of properties object has.     (var property in parsedresult[0])      {         if (parsedresult[0].hasownproperty(property))             tableheadings.push(property);     }      // make table     var tbl = newel('table');     var tbody = newel('tbody');     tbl.appendchild(tbody);      // make first row, headings in     var tr = newel('tr');     var i, n = tableheadings.length;     (i=0; i<n; i++)     {         var th = newel('th');         th.innertext = tableheadings[i];         tr.appendchild(th);     }     tbody.appendchild(tr);      // 'fun' part - body itself.     var currowindex, curcolindex, nrows = parsedresult[0][tableheadings[0]].length, ncols = tableheadings.length;     (currowindex=0; currowindex<nrows; currowindex++)     {         var tr = newel('tr');         (curcolindex=0; curcolindex<ncols; curcolindex++)         {             var td = newel('td');             td.innertext = parsedresult[0][ tableheadings[curcolindex] ][currowindex];             tr.appendchild(td);         }         tbody.appendchild(tr);     }      return tbl;  } </script> <style> </style> </head> <body> </body> </html> 

Comments