Avatar billede renolde_dk Nybegynder
30. marts 2003 - 16:09 Der er 4 kommentarer og
1 løsning

Ændre rækkefølgen af elementer i array

Jeg har en tabel med værdier som bliver hentet ind fra en database. Jeg skal lave en funktion der kan bytte om på de værdier, der er i tabellen. Man skal kunne rykke de enkelte punkter en plads op eller ned vha. to knapper ud for hvert punkt (op/ned).

Når man til sidst har rykket rundt på punkterne skal værdierne skrives til databasen igen, i ændret rækkefølge.

Jeg tilgår database via jsp, og det virker. Jeg kan bare ikke lave den funktion der rykker rundt på punkterne dynamisk.
Avatar billede Slettet bruger
30. marts 2003 - 17:59 #1
Hvordan skal punkterne vises? Vis gerne et link som eksempel.
Avatar billede renolde_dk Nybegynder
30. marts 2003 - 18:48 #2
skal vises nogenlunde sådan her:
punkt1 [ned]
punkt2 [ned][op]
punkt3 [ned][op]
punkt4 [ned][op]
punkt5 [op]

Hvor [op] og [ned] er knapper.
Når der trykker på en af knapperne skifter den plads med hhv den der står over eller under.
Sådan rent grafikmæssigt skal det vises enten som tekstlinier under hinanden, eller i en tabel.
Avatar billede flodfarmer Nybegynder
30. marts 2003 - 21:28 #3
hvordan er kravene til data opbevaring på selve siden ?
Kan der for ekesmpel benyttes et JScript funktion til at levere ud dataen ?
Avatar billede Slettet bruger
31. marts 2003 - 14:42 #4
Hvad med dette:

<html>
<head>
<script>
punkter = new Array("Punkt 1", "Punkt 2", "Punkt 3", "Punkt 4", "Punkt 5");

function skift(vej, nr) {
  nr1 = document.getElementById("punkt" + nr).innerHTML;
  nr2 = document.getElementById("punkt" + (nr + vej)).innerHTML;
  document.getElementById("punkt" + (nr + vej)).innerHTML = nr1;
  document.getElementById("punkt" + nr).innerHTML = nr2;
}

function send() {
  arr = new Array();
  for (i = 0; i < punkter.length; i++)
    arr[i] = document.getElementById("punkt" + i).innerHTML;
  document.skjultForm.raekkefoelge.value = arr.join(",");
  document.skjultForm.submit();
}
</script>
</head>
<body>
<script>
document.write('<table cellspacing="0" cellpadding="3" border="1">');
for (i = 0; i < punkter.length; i++) {
  document.write('<tr><td id="punkt' + i + '" style="font-weight: bold;">' + punkter[i] + '</td><td>' + ((i < punkter.length - 1) ? '<a href="#" onFocus="if (this.blur) this.blur();" onClick="skift(1, ' + i + '); return false;">Ned</a> ' : '') + ((i != 0) ? '<a href="#" onFocus="if (this.blur) this.blur();" onClick="skift(-1, ' + i + '); return false;">Op</a>' : '') + '</td></tr>');
}
document.write('</table>');
</script>
<br>
<a href="#" onClick="send(); return false;">Send</a>
<form action="modtager.php" method="post" name="skjultForm" style="display: none;">
<input type="hidden" name="raekkefoelge">
</form>
</body>
</html>
Avatar billede renolde_dk Nybegynder
31. marts 2003 - 19:09 #5
Det var lige præcist hvad jeg havde tænkt på. Du er genial phoenixv. Det har jeg godt nok kæmpet længe med, og været ude i nogle uoverskuelige kodestykker.
Men så enkelt kunne det altså gøre.
Mange tak skal du have.
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