webForumDet fria alternativet

En tabell skapad med javascript?

7 svar · 567 visningar · startad av Sune

SuneMedlem sedan nov. 1999242 inlägg
#1

Nu har jag gett mig på saker igen som jag inte riktigt fattar... hoppas någon kan hjälpa...
Med hjälp av arrays och en for loop lägger jag in värden i en tabell och den fungerar, dock endast i en kolumn...
Vad jag försöker få att fungera är att man med hjälp av variabeln var cols=4; sätter in hur många kolumner jag presenterar min arrays värden i.
Jag vill att tabellen ska lägga värdena typ så här:

| Beskrivning  1 | Beskrivning  2 | Beskrivning  3 | Beskrivning  4 |
| Beskrivning  5 | Beskrivning  6 | Beskrivning  7 | Beskrivning  8 |
| Beskrivning  9 | Beskrivning 10 | Beskrivning 11 | Beskrivning 12 |

Här nedan är scriptet så lång som jag kommit fram tills nu:

<script language="JavaScript"><!--
itm = new Array() ;
itm[0] = new item ('Beskrivning 1') ;
itm[1] = new item ('Beskrivning 2') ;
itm[2] = new item ('Beskrivning 3') ;
itm[3] = new item ('Beskrivning 4') ;
itm[4] = new item ('Beskrivning 5') ;
itm[5] = new item ('Beskrivning 6') ;
itm[6] = new item ('Beskrivning 7') ;
itm[7] = new item ('Beskrivning 8') ;
itm[8] = new item ('Beskrivning 9') ;
itm[9] = new item ('Beskrivning 10') ;
itm[10] = new item ('Beskrivning 11') ;
itm[11] = new item ('Beskrivning 12') ;

var cols = 4 ;

function item(itemDesc) {
    this.desc=itemDesc;
}

var Text = '<table border="1">\n';
for (i = 0;i < itm.length; i++) {
	Text += '<tr>';
	Text += '<td>' + itm[i].desc + '</td>';
}
Text += '</table>\n';
document.write(Text);
// -->
</script>
JojoxxMedlem sedan juni 20004 306 inlägg
#2
var Text = '<table border="1">\n';
for (i = 0;i < itm.length; i+=cols) {
	Text += '<tr>';
	for (c=0;c<cols&&i+c<itm.length;c++) {
		Text += '<td>' + itm[i+c].desc + '</td>';
	}
	Text += '</tr>';
}
Text += '</table>\n';
SuneMedlem sedan nov. 1999242 inlägg
#3

Tack ska du ha jojoxx! Du är en klippa!

SuneMedlem sedan nov. 1999242 inlägg
#4

Peter S hjälpte mig med en tidigare lösning på samma problem, men jag skulle vilja ha samma lösning om möjligt med denna...

Om jag har 11 beskrivningar och 4 kolumner så blir det en "tom-cell" så att det inte bara utelämnas en td-cell.
Jag skulle vilja att det skrevs ut "--" i denna tomruta.

Ni kanske kan få hjälp att förstå om ni tittar i denna tråd...
Klumpig förklaring, hoppas ni förstår i alla fall...

http://www.webforum.nu/showthread.php?s=&threadid=116817&forumid=24

SuneMedlem sedan nov. 1999242 inlägg
#5

För att visa hur jag menar så kanske detta hjälper...

| Beskrivning 1 | Beskrivning 2 | Beskrivning 3 | Beskrivning 4 |
| Beskrivning 5 | Beskrivning 6 | Beskrivning 7 | Beskrivning 8 |
| Beskrivning 9 | Beskrivning 10 | Beskrivning 11 | -- |

JojoxxMedlem sedan juni 20004 306 inlägg
#6
var Text = '<table border="1">\n';
for (i = 0;i < itm.length; i+=cols) {
	Text += '<tr>';
	for (c=0;c<cols;c++) {
		Text += '<td>' + ((itm[i+c])?itm[i+c].desc:"--") + '</td>';
	}
	Text += '</tr>';
}
Text += '</table>\n';
SuneMedlem sedan nov. 1999242 inlägg
#7

Tack igen Jojoxx!

JojoxxMedlem sedan juni 20004 306 inlägg
#8

Använd gärna funktionen Acceptera som slutgiltigt svar. :)

Genererad på 373 ms · cache AV · v20260730165559-full.f96bc7eb