tea

Array to html table

9 posts in this topic

Hi ppl,

 

I have Array data-https://gist.github.com/mahakT/df9632be8b8929197041460efd335ac8

 

which needs to be generated to html table as (Expected output in table format from Array :https://snag.gy/S7YZD9.jpg)

 

Points:

 

1.(we can ignore "seq" field if not required)

2. I need to sort the Array.. and data should be fetched based on the start and end date sequence.... for your better understanding i have given in screenshot...https://snag.gy/wsjgTb.jpg

3.Expected output in table format from Array :https://snag.gy/S7YZD9.jpg
Experts can you please let me know how to achieve this?

 

Share this post


Link to post
Share on other sites

Do you have any code so far? Is that a JSON array structure, is it an array of objects?

Share this post


Link to post
Share on other sites

Do you have any code so far? Is that a JSON array structure, is it an array of objects?

Hi.... I have code here by with the data..... I need data from 1 to be in Monday, 2- Tuesday,3-wednesday,4-thursday,...

 

If you check the below one...it works different..... not sure...how to achieve this...Appreciate if you could assist... thanks

 

 

<!DOCTYPE html>
<html lang="en">
<body>
<table cellspacing="1" cellpadding="1" border="1" id="tbl">
</table>
</body>
<body>
<script type="text/javascript" src="http://www.datejs.com/build/date.js"></script>
<script type="text/javascript">
/*eslint-env jquery, jquery*/
$(function () {
var array = [{"seq":1,"day":"Monday","summary":"Nijas Ages","start":"04:00 - 04:30"},
{"seq":1,"day":"Monday","summary":"Nijas Ages","start":"04:00 - 04:30"},
{"seq":1,"day":"Monday","summary":"Ninjas Ages","start":"04:00 - 04:45"},
{"seq":1,"day":"Monday","summary":"Youth Karate Ages 6-12","start":"04:30 - 05:00"},
{"seq":2,"day":"Tuesday","summary":"Juniors Gracie Jiu-Jitsu","start":"04:00 - 04:45"},
{"seq":2,"day":"Tuesday","summary":"Juniors Gracie Jiu-Jitsu","start":"04:00 - 04:45"},
{"seq":2,"day":"Tuesday","summary":"Juniors Gracie Jiu-Jitsu","start":"04:00 - 04:45"},
{"seq":2,"day":"Tuesday","summary":"Juniors Gracie Jiu-Jitsu","start":"04:00 - 04:45"},
{"seq":2,"day":"Tuesday","summary":"Juniors Gracie Jiu Jitsu","start":"04:00 - 04:45"},
{"seq":2,"day":"Tuesday","summary":"Juniors Gracie Jiu-Jitsu","start":"04:00 - 04:45"},
{"seq":2,"day":"Tuesday","summary":"Juniors Gracie Jiu-Jitsu","start":"04:00 - 04:45"},
{"seq":2,"day":"Tuesday","summary":"Juniors Gracie Jiu Jitsu","start":"04:00 - 04:45"},
{"seq":2,"day":"Tuesday","summary":"Nijas Ages 3-5","start":"04:45 - 05:15"},
{"seq":2,"day":"Tuesday","summary":"Muay Thai Kickboxing","start":"07:00 - 07:45"},
{"seq":2,"day":"Tuesday","summary":"Muay Thai Kickboxing","start":"07:00 - 07:45"},
{"seq":2,"day":"Tuesday","summary":"Muay Thai Kickboxing","start":"07:00 - 07:45"},
{"seq":2,"day":"Tuesday","summary":"Muay Thai Kickboxing","start":"07:00 - 07:45"},
{"seq":2,"day":"Tuesday","summary":"Muay Thai Kickboxing","start":"09:45 - 10:30"},
{"seq":2,"day":"Tuesday","summary":"Muay Thai Kickboxing","start":"09:45 - 10:30"},
{"seq":3,"day":"Wednesday","summary":"Ninjas Ages Ages 3-5","start":"04:00 - 04:30"},
{"seq":3,"day":"Wednesday","summary":"Ninjas Ages Ages 3-5","start":"04:00 - 04:30"},
{"seq":3,"day":"Wednesday","summary":"Ninjas Ages 4-6 ","start":"04:00 - 04:45"},
{"seq":3,"day":"Wednesday","summary":"Ninjas Ages","start":"04:00 - 04:45"},
{"seq":3,"day":"Wednesday","summary":"Ninjas Ages","start":"04:00 - 04:45"},
{"seq":3,"day":"Wednesday","summary":"Ninjas Ages 4-6 ","start":"04:00 - 04:45"},
{"seq":3,"day":"Wednesday","summary":"Ninjas Ages 4-6 ","start":"04:00 - 04:45"},
{"seq":3,"day":"Wednesday","summary":"Youth Karate Ages 7-12","start":"04:45 - 05:30"},
{"seq":3,"day":"Wednesday","summary":"Teen/Adult. Karate Teen Krav Maga","start":"05:15 - 05:45"},
{"seq":3,"day":"Wednesday","summary":"Muay Thai Kickboxing","start":"06:00 - 06:30"},
{"seq":3,"day":"Wednesday","summary":"Muay Thai Kickboxing","start":"06:15 - 07:00"},
{"seq":3,"day":"Wednesday","summary":"Muay Thai Kickboxing","start":"06:15 - 07:00"},
{"seq":3,"day":"Wednesday","summary":"Gracie Jiu-Jitsu Adults","start":"07:00 - 07:45"},
{"seq":3,"day":"Wednesday","summary":"Gracie Jiu-Jitsu Adults","start":"07:00 - 07:45"},
{"seq":3,"day":"Wednesday","summary":"Gracie Jiu-Jitsu Adults","start":"07:00 - 07:45"},
{"seq":4,"day":"Thursday","summary":"Ninjas Ages 3-5","start":"04:45 - 05:15"},
{"seq":4,"day":"Thursday","summary":"Ninjas Ages 3-5","start":"04:45 - 05:15"},
{"seq":4,"day":"Thursday","summary":"Nijas Ages 4-6","start":"04:45 - 05:30"},
{"seq":4,"day":"Thursday","summary":"Youth Karate Ages 6-12","start":"05:15 - 05:45"},
{"seq":4,"day":"Thursday","summary":"Youth Karate Ages 6-12","start":"05:15 - 05:45"},
{"seq":4,"day":"Thursday","summary":"Youth Karate Ages 7-12","start":"05:30 - 06:15"},
{"seq":4,"day":"Thursday","summary":"Youth Karate Ages 7-12","start":"05:30 - 06:15"},
{"seq":4,"day":"Thursday","summary":"Muay Thai Kickboxing","start":"06:45 - 07:15"},
{"seq":4,"day":"Thursday","summary":"Muay Thai Kickboxing","start":"06:45 - 07:15"},
{"seq":5,"day":"Friday","summary":"Ninjas Ages Ages 4-6","start":"04:00 - 04:30"},
{"seq":5,"day":"Friday","summary":"Ninjas Ages 4-6","start":"04:00 - 04:30"},
{"seq":5,"day":"Friday","summary":"Ninjas Ages 4-6","start":"04:00 - 04:30"},
{"seq":5,"day":"Friday","summary":"Ninjas Ages 4-6","start":"04:00 - 04:30"},
{"seq":5,"day":"Friday","summary":"Ninjas Ages Ages 4-6","start":"04:00 - 04:30"},
{"seq":5,"day":"Friday","summary":"Ninjas Ages 4-6","start":"04:00 - 04:30"},
{"seq":5,"day":"Friday","summary":"Ninjas Ages 4-6","start":"04:00 - 04:30"},
{"seq":5,"day":"Friday","summary":"Ninjas Ages 4-6","start":"04:00 - 04:30"},
{"seq":5,"day":"Friday","summary":"Ninjas Ages 4-6","start":"04:00 - 04:30"},
{"seq":5,"day":"Friday","summary":"Karate All Levels","start":"04:30 - 05:00"},
{"seq":5,"day":"Friday","summary":"Karate All Levels","start":"04:30 - 05:00"},
{"seq":5,"day":"Friday","summary":"Karate/Thai Weapons","start":"05:00 - 05:30"},
{"seq":5,"day":"Friday","summary":"Gold/Blue/Green Weapons","start":"05:00 - 05:30"},
{"seq":5,"day":"Friday","summary":"Karate/Thai - Weapons","start":"05:00 - 05:30"},
{"seq":5,"day":"Friday","summary":"Gold/Blue/Green Weapons","start":"05:00 - 05:30"},
{"seq":5,"day":"Friday","summary":"Karate/Thai Weapons","start":"05:00 - 05:30"},
{"seq":5,"day":"Friday","summary":"Gold/Blue/Green Weapons","start":"05:00 - 05:30"},
{"seq":5,"day":"Friday","summary":"Kickboxing All Levels","start":"06:00 - 06:30"},
{"seq":5,"day":"Friday","summary":"Muay Thai Express","start":"06:00 - 06:30"},
{"seq":5,"day":"Friday","summary":"Kickboxing Express","start":"06:00 - 06:30"},
{"seq":5,"day":"Friday","summary":"Kickboxing All Levels","start":"06:00 - 06:30"},
{"seq":5,"day":"Friday","summary":"Muay Thai Express","start":"06:00 - 06:30"},
{"seq":5,"day":"Friday","summary":"Muay Thai Express","start":"06:00 - 06:30"},
{"seq":5,"day":"Friday","summary":"Youth/Adult Karate All Level","start":"08:30 - 09:00"},
{"seq":5,"day":"Friday","summary":"Youth/Adult Karate All Level","start":"08:30 - 09:00"},
{"seq":6,"day":"Saturday","summary":"Muay Thai Kickboxing All Levels","start":"09:00 - 09:45"},
{"seq":6,"day":"Saturday","summary":"Kickboxing All Levels","start":"09:00 - 09:45"},
{"seq":6,"day":"Saturday","summary":"Muay Thai Kickboxing All Levels","start":"09:00 - 09:45"},
{"seq":6,"day":"Saturday","summary":"Muay Thai Kickboxing","start":"09:00 - 09:45"},
{"seq":6,"day":"Saturday","summary":"Kickboxing All Levels","start":"09:00 - 09:45"},
{"seq":6,"day":"Saturday","summary":"Muay Thai Kickboxing All Levels","start":"09:00 - 09:45"},
{"seq":6,"day":"Saturday","summary":"Kinder Karate (Ages 2-3)","start":"09:15 - 09:45"},
{"seq":6,"day":"Saturday","summary":"Kinder Karate (Ages 2-3)","start":"09:15 - 09:45"},
{"seq":6,"day":"Saturday","summary":"Ninjas - Ages 3-5","start":"09:45 - 10:15"},
{"seq":6,"day":"Saturday","summary":"Ninjas - Ages 3-5","start":"09:45 - 10:15"},
{"seq":6,"day":"Saturday","summary":"Ninjas 4 - 6","start":"09:45 - 10:30"},
{"seq":6,"day":"Saturday","summary":"Ninjas 4 - 6","start":"09:45 - 10:30"},
{"seq":6,"day":"Saturday","summary":"Ninjas - Ages 4-6","start":"09:45 - 10:30"},
{"seq":6,"day":"Saturday","summary":"Ninjas - Ages 4-6","start":"09:45 - 10:30"},
{"seq":6,"day":"Saturday","summary":"Youth Karate Ages 6-12","start":"10:15 - 10:45"},
{"seq":6,"day":"Saturday","summary":"Karate All Levels","start":"10:30 - 11:15"},
{"seq":6,"day":"Saturday","summary":"Karate All Levels","start":"10:30 - 11:15"},
{"seq":6,"day":"Saturday","summary":"Karate All Levels","start":"10:30 - 11:15"},
{"seq":6,"day":"Saturday","summary":"Youth-Adult Karate All Ages","start":"10:30 - 11:15"},
{"seq":6,"day":"Saturday","summary":"Youth Karate Ages 7-12","start":"10:30 - 11:15"},
{"seq":6,"day":"Saturday","summary":"Dream Team","start":"11:00 - 11:30"},
{"seq":6,"day":"Saturday","summary":"Dream Team","start":"11:15 - 12:00"},
{"seq":6,"day":"Saturday","summary":"Birthday Parties","start":"12:30 - 01:30"},
{"seq":6,"day":"Saturday","summary":"Birthday Parties??","start":"12:30 - 01:30"},
{"seq":6,"day":"Saturday","summary":"Birthday Parties","start":"12:30 - 01:30"},
{"seq":6,"day":"Saturday","summary":"Birthday Parties","start":"12:30 - 01:30"},
{"seq":6,"day":"Saturday","summary":"Birthday Parties??","start":"12:30 - 01:30"},
{"seq":6,"day":"Saturday","summary":"Birthday Parties ??","start":"12:30 - 01:30"},
{"seq":6,"day":"Saturday","summary":"Birthday Parties","start":"12:30 - 01:30"},
{"seq":6,"day":"Saturday","summary":"Birthday Parties","start":"12:30 - 01:30"}];
var temp = array;
var uniqdays = [];
for (var i = 0; i < array.length; i++)
if (uniqdays.indexOf(array.day) == -1) uniqdays.push(array.day);
var maxAry = [];
for (var i = 0; i < uniqdays.length; i++) {
var tempary = [];
for (var j = 0; j < array.length; j++) {
if(array[j].day == uniqdays)
tempary.push(array[j].summary)
}
maxAry.push(tempary.length);
}
var maxValue = maxAry.sort().pop();
var $tbl = $('#tbl');
var $trhead = $('<tr>').appendTo($tbl);
for (var i = 0; i < uniqdays.length; i++) {
var day = uniqdays;
var $td = $('<td>').appendTo($trhead);
$td.text(day);
}
var start;
for (var i = 0; i < maxValue; i++) {
var $tr = $('<tr>').appendTo($tbl);
for (var j = 0; j < uniqdays.length; j++) {
var day = uniqdays[j];
for (var k = 0; k < temp.length; k++) {
if (temp[k].seq!=null && temp[k].day == day && temp[k].summary != '' && temp[k].start!=start) {
var $td = $('<td>').appendTo($tr);
$td.text(temp[k].seq+"--"+temp[k].summary);
temp[k].summary = '';
start=temp[k].start;
break;
}
}
}
}
});
</script>
</body>
</html>

Share this post


Link to post
Share on other sites

I'm happy to help you learn how to do this, I'm not going to do it for you though.

 

How does it work different? What does it do that you don't think it should, or what is it missing? Are you checking your browser's console for error messages?

Share this post


Link to post
Share on other sites

Thanks for sayign that..what I understand is.... .... lets say if array[4] is in loop and the data should in 5 th column 4th row....instead it checks from first column and if first column has 4 rows.....column 2 doesnt have value in 4th row... it passes the value in coln2,rw 4 instead of coln 5,row 4.....

 

Its should ideally look for the coresponding column instead of the column in order which is empty....

 

 

I am exectuing the code in fiddle(I added "debugger" in fiddle and in my locale html... not sure how to debug :(

Edited by tea

Share this post


Link to post
Share on other sites

I also tried smething different like this .... but it pass the required array data only to first column....make sense... as I added only one in below code....

 

 

<!DOCTYPE html>
<html lang="en">
<body>
<table id="table" border="1">
<tr>
<td align="center">Monday - A</td>
<td align="center">Tuesday - A</td>
<td align="center">Wednesday - B</td>
<td align="center">Thursday - B</td>
<td align="center">Friday - A</td>
<td align="center">Saturday - B</td>
</tr>
</table>
</body>
<body>
<script type="text/javascript" src="http://www.datejs.com/build/date.js"></script>
<script type="text/javascript">
/*eslint-env jquery, jquery*/
$(function () {
var json = [ *******data hereeee***];
var tr,start;
var temp =[];
temp=json;
for (var i = 0; i < temp.length; i++) {
tr = $('<tr/>');
if( json.day==1 && json.start!==start )
{
tr.append("<td>" + json.day + temp.summary + "<br>"+ temp.start + " -" + temp.end + "</td>");
$('table').append(tr);
}
start=json.start;
}
});

I have a idea but not sure if its feasible .....Please advise...

 

I have list of td in html body..... can i call above function from each td to add the rows from data?

 

say if : <td align="center">Monday - A *** pass id and call fucntion ** day(1) </td>

 

function (day=1)

{

pass the data to column 1

}

Edited by tea

Share this post


Link to post
Share on other sites

You can call the function and pass the element where you want to store the data, either a td or tr or whatever you want to do. If you give the element an ID then you can write the function so it expects an element to get passed to it where it would write the data or something like that.

 

For debugging, all modern browsers have developer tools, a lot of them use F12 as the key to open them.

Share this post


Link to post
Share on other sites

You can call the function and pass the element where you want to store the data, either a td or tr or whatever you want to do. If you give the element an ID then you can write the function so it expects an element to get passed to it where it would write the data or something like that.

 

For debugging, all modern browsers have developer tools, a lot of them use F12 as the key to open them.

Hi...Thats where my doubt is...if i call function from td #2... how does it add the rows to 2nd column?

Share this post


Link to post
Share on other sites

You can pass it the element where you want it to put the data. e.g.:

 

func(document.getElementById("2"));
Inside the function you just use the passed element to add the data.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now