Avatar billede gaia1986 Nybegynder
31. oktober 2007 - 20:36 Der er 19 kommentarer og
1 løsning

Alfabetisk sortering i tabel

Hej alle!

Jeg har en hjemmeside oppe at køre og har en sektion med citater fra folk jeg syntes taler om fede ting. Hehe..
Jeg har fundet en tabel et sted som jeg har sat ind, man kan klikke på de forskellige titler i kollonerne, f.eks. navn, dato, titel osv. og så arrangerer den kollonen efter alfabetisk ordning. Det fungerer fint, jeg vil dog godt have den til at arrangere alfabetisk fra start ud fra navnet. Fra start ligger arrangeringen nemlig efter hvornår jeg har tilføjet dem. Det vil sige, de nyeste i bunden.

Jeg vil altså godt have at den automatisk arrangerer efter en bestemt kategori (i dette tilfælde: navn/forfatter) fra start når siden indlæses.

Det kunne være så fedt hvis i kunne hjælpe!
Det er denne side der er tale om:
http://www.shamanplants.dk/filotekst.htm
Avatar billede w13 Novice
31. oktober 2007 - 21:06 #1
Prøv at inkludere følgende lige før </body>:
-------------------------------
<script type="text/javascript">
document.getElementsByTagName("th")[0].headingClicked
</script>
Avatar billede gaia1986 Nybegynder
31. oktober 2007 - 22:21 #2
Nej der sker desværre ikke noget.
Avatar billede w13 Novice
01. november 2007 - 01:21 #3
Øv. Jeg var hele sorteringskoden igennem. Havde lidt svært at overskue det, men dette var mit bedste bud. Så er jeg blank.
Avatar billede gaia1986 Nybegynder
01. november 2007 - 01:23 #4
Okay, kan du prøve selv at hente .htm filen og afprøve det på din computer? Eller skal jeg sende den i en zip?
Avatar billede w13 Novice
01. november 2007 - 01:27 #5
Nej, jeg hentede det hele ned, da jeg prøvede, men jeg kunne bare ikke rigtig finde rundt i det. De har flettet funktionerne godt ind i hinanden. Vi må bare håbe, der kommer nogle mere garvede eksperter fordi.
Avatar billede roenving Novice
01. november 2007 - 17:35 #6
-- sådan noget skal du absolut lave server-side, der er ingen grund til at undlade at tilføje 'sort by navn' i din sql-sætning !-)
Avatar billede gaia1986 Nybegynder
03. november 2007 - 17:18 #7
roenving, uddyb? Er det noget som er relevant for at det ikke fungerer?
Avatar billede w13 Novice
03. november 2007 - 17:43 #8
Jeg tror bare, han mener, du bør hente fra en database el. lign., så du har meget bedre mulighed for sortering - og opdatering i øvrigt.
Avatar billede roenving Novice
04. november 2007 - 05:13 #9
Jeps, det er spild af tid at sortere client-side, selvom det sagtens kan lade sig gøre ...

Data, der har den mindste smule dynamik, bør _altid_ forefindes i en server-side database !-)
Avatar billede gaia1986 Nybegynder
04. november 2007 - 15:34 #10
Okay så der er ikke noget at gøre her? Har du et bud på hvad man kan gøre for at ændre det?
Avatar billede gaia1986 Nybegynder
04. november 2007 - 23:20 #11
Jeg tror muligvis godt jeg forstår hvad i mener nu, er der én der kan lave et udkast til en sådan database i php f.eks.? Så kan jeg lige sætte pointene lidt op.
Avatar billede roenving Novice
04. november 2007 - 23:44 #12
Så er det nok hensigtsmæssigt, at du flytter til php-kategorien: Programmering/Script/PHP !-)
Avatar billede w13 Novice
29. juli 2008 - 09:33 #13
Lukketid?
Avatar billede gaia1986 Nybegynder
29. juli 2008 - 22:06 #14
Det står stadig uafklaret for mig hvordan det kan lade sig gøre :) Så endelig bare læg et svar hvis det er.
Avatar billede erikjacobsen Ekspert
29. juli 2008 - 22:12 #15
Hvis du vil kalde en funktion, w13, skal det være

  document.getElementsByTagName("th")[0].headingClicked()

Jeg har ikke kigget koden igennem for at se om det så faktisk vil virke.
Avatar billede w13 Novice
29. juli 2008 - 22:14 #16
Hvis spørgsmålet ikke er løst, skal du jo selv oprette og acceptere et svar. =)
Avatar billede mclemens Nybegynder
29. juli 2008 - 23:16 #17
Medmindre du lægger funktionskaldet ind efter at den har genereret det hele og omberegnet dom'en (integreret i den eksisterende javascript funktion) skal der nok en timeout til.

Da onclick'en sidder på href elementet skal der nok et gennemløb på a elementer til - i det tilfælde her er det - det første element med en columnId der er defineret.

- Herefter laves så et kald til funktionen der er påsat elementets onclick - men da der måles på event triggeren, skal vi vedhæfte et kunstigt obj indeholdende en reference til elementet selv.

Hvis den ikke fandt et a element med attributen "columnId" forsøger den aktivering efter 200 ms igen (den kan nok godt rettes ned til evt. 100 ms. eller mindre)

<script type="text/javascript">
function timeoutit(){
  elms=document.getElementsByTagName("a");
  for(i=0,j=elms.length;i<j;i++){
    if(elms[i].getAttribute("columnId")!=undefined){tmp={"target":elms[i]};elms[i].onclick(tmp);break;}
  if(i==j-1)setTimeout("timeoutit();",200);}
}timeoutit();
</script>
Avatar billede mclemens Nybegynder
30. juli 2008 - 00:45 #18
Inden jeg hopper til køjs ... alternativt til ovenstående i html filen er
som sagt at rette standardista-table-sorting.js med følgende rettelser:

            linkEl.title = 'Click to sort';
rettes til:
            linkEl.title = 'Click to sort';
if(i==0)linkEl.setAttribute('id',"opstart");

...

function standardistaTableSortingInit() {
    standardistaTableSorting.init();
}

rettes til:

function standardistaTableSortingInit() {
    standardistaTableSorting.init();
elm=document.getElementById("opstart");elm.onclick(tmp={"target":elm});
}
Avatar billede gaia1986 Nybegynder
05. august 2008 - 22:24 #19
Hey mclemens, det virkede - jeg skiftede de anviste kommandoer ud i standardista-table-sorting.js og nu fungerer det! Tak for det!
Avatar billede mclemens Nybegynder
05. august 2008 - 22:27 #20
Velbekom, og tak for point :)
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