Avatar billede Søren Bech Morsing Praktikant
23. oktober 2001 - 14:31 Der er 13 kommentarer og
1 løsning

Clientside opdatering af tabel med divs

jeg er lidt fortabt, skal lave noget opdatering af en tabel clientside (har ikke rigtig prøvet det før)

Men jeg har en tabel med 10 kolonner og tallene 1-10 i kolonnerne.

Når jeg så på et link under tabellen trykker opdater skal den lægge 1 til alle tallene clientside.

Hvordan gør jeg det?

jeg har prøvet med:

<table>
<tr><td><div name=\"tal1\">1</div></td></tr>
<tr><td><div name=\"tal2\">2</div></td></tr>
osv.

Men hvordan opdatere jeg? og er det rigtigt?
Avatar billede olebole Juniormester
23. oktober 2001 - 14:50 #1
<ole>

<table id=\"ib\">
<tr>
  <td>1</td>
  <td>2</td>
  <td>3</td>
</tr>
<tr>
  <td>4</td>
  <td>5</td>
  <td>6</td>
</tr>
</table>

<a href=\"java script:updateTBL();void(0);\">update</a>

...og funktionen:

function updateTBL(){
  tdArr = document.getElementById(\"ib\").getElementsByTagName(\"TD\");
  for (i=0; i<tdArr.length; i++) {
    tdArr[i].innerHTML = parseInt(tdArr.innerHTML)+1;
  }
}

/mvh
</bole>
Avatar billede Søren Bech Morsing Praktikant
24. oktober 2001 - 08:39 #2
Tak for eksemep Ole... Det virker næsten

Nå, men hvis jeg så gerne vil sætte et id (fx celle1) på den første celle, er der så ikke en måde at ændre værdien i den id på?

document.getElementById(\"celle1\").value = 3;

Avatar billede olebole Juniormester
24. oktober 2001 - 08:44 #3
document.getElementById(\"celle1\").id = \"celle3\";
...men er det id\'erne, du vil ændre - jeg troede, det var indholdet af cellerne?
/mvh
Avatar billede Søren Bech Morsing Praktikant
24. oktober 2001 - 08:57 #4
Nå jo.. det er cellerne.. jeg vil bare gerne kunne kalde dem hver for sig..

så ja du har ret.
Avatar billede olebole Juniormester
24. oktober 2001 - 09:04 #5
Okay... jamen, hvis ikke du kan skrive id\'ere i cellerne før, kan du jo altid bladre dem igennem på onload og give dem en id med samme funktion - blot en anelse ændret:

function updateTBL(){
  tdArr = document.getElementById(\"ib\").getElementsByTagName(\"TD\");
  for (i=0; i<tdArr.length; i++) {
    tdArr[i].id = \"celle\"+i;
  }
}

...så har du adgang til hver celle for sig med id\'ere fra \'menu0\' og op. Hjalp det?
/mvh
Avatar billede Søren Bech Morsing Praktikant
24. oktober 2001 - 09:12 #6
<table>
<tr>
  <td id=\"uge1\">1</td>
  <td id=\"dag1\">1</td>
  <td id=\"dag2\">2</td>
</tr>
<tr>
  <td id=\"uge2\">2</td>
  <td id=\"dag3\">3</td>
  <td id=\"dag4\">4</td>
</tr>
</table>
Avatar billede olebole Juniormester
24. oktober 2001 - 09:13 #7
Uha....aldrig to elementer med samme id...!  =8-O
Avatar billede Søren Bech Morsing Praktikant
24. oktober 2001 - 09:14 #8
Og så vil jeg gerne have et link der kalder en fuktion

function opdater() {

id.uge1.value = id.uge1.value+1
id.uge2.value = id.uge2.value+2

id.dag1.value = id.dag1.value+4
id.dag2.value = id.dag2.value+4
id.dag3.value = id.dag3.value+4
id.dag4.value = id.dag4.value+4
}
Avatar billede Søren Bech Morsing Praktikant
24. oktober 2001 - 09:14 #9
hvad mener du med aldrig samme element med samme id?

må den ene td ikke hedde uge1 og en anden uge2
Avatar billede Søren Bech Morsing Praktikant
24. oktober 2001 - 09:19 #10
Unskyld Ole.. jeg læste ikke lige... jeg troede bare innerHTML var noget andet..
Tak for hjælpen
Avatar billede olebole Juniormester
24. oktober 2001 - 09:19 #11
Du har \'dag1\', \'dag1\' og \'dag2\', men det var nok en fejl  ;o)

Du må nok helt fra bunden forklare, hvad det skal bruges til. Så kan jeg komme med en brugbar løsning.
Hvorfor skal cellerne opdateres og med hvad?
Jeg prøver blot at finde den mest \'sexy\' metode  :)
Avatar billede olebole Juniormester
24. oktober 2001 - 09:21 #12
Hehe....okay  ;o)
Det er altid en god idé at teste svarene af - så forstår man nogen gange lidt bedre  :)
/mvh og tak for points
Avatar billede Søren Bech Morsing Praktikant
24. oktober 2001 - 09:21 #13
<script language=\"javascript\">

function updateTBL(){
 
  document.getElementById(\"uge1\").innerHTML = parseInt(document.getElementById(\"uge1\").innerHTML)+2
  document.getElementById(\"uge2\").innerHTML = parseInt(document.getElementById(\"uge2\").innerHTML)+2
 
  for (i=1;i<=4;i++) {
      document.getElementById(\"dag\"+i).innerHTML = parseInt(document.getElementById(\"dag\"+i).innerHTML)+4
  }
  }

</script>
Avatar billede olebole Juniormester
24. oktober 2001 - 09:22 #14
Yepper ....så spiller den da max!  ;o))
/mvh
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester