Avatar billede strit112 Nybegynder
02. juli 2008 - 01:39 Der er 14 kommentarer og
1 løsning

Hvilke sprog kræver dette?

Jeg er begyndt at lave hjemmesider, og det er indtil videre gået fint i simpel html.

Nu vil jeg gerne tage springet videre og finde ud af hvad jeg nu skal kaste mig ud i.

Jeg vil gerne lave en tabel som man kan sortere i.
Altså nogle kolonner med overskrifter man kan sortere efter, f.eks. hvis der står nogle tal i den kolonne og man klikker første gang, har man laveste tal øverst, og hvis man klikker igen, har man højeste tal øverst.

Egentlig lidt ligesom der er på WoW armory, hvor man kan sortere efter level, navn, server navn osv.

Hvis jeg bare får en ledetråd på hvilket sprog det skal skrives i, evt. hvor jeg kan læse på det og andet som er rart at vide når jeg skal starte på det, ville være dejligt.
Avatar billede arne_v Ekspert
02. juli 2008 - 01:47 #1
En XML datafil som manipuleres med noget XSLT via noget JavaScript lyder som
en oplagt mulighed.
Avatar billede strit112 Nybegynder
02. juli 2008 - 01:51 #2
Jeg havde forestillet mig at jeg skulle lave en database som indeholder informationerne som skal være i tabellen. Men jeg ved ikke noget om det, havde bare en ide om at det er sådan det skulle gøres.
Avatar billede strit112 Nybegynder
02. juli 2008 - 01:54 #3
Jeg kom lige til at tænke på, at jeg også ligeså godt kan vise siden, det skal bruges på.

http://wow-pals.com/buychar.html

Jeg havde tænkt at den tabel med tiden bliver uoverskuelig, så hvis man trykker på f.eks. classes, kan man sortere den efter classes. Det samme med gear lvl og de andre overskrifter selvf.
Avatar billede arne_v Ekspert
02. juli 2008 - 03:15 #4
Data kan sagtens hentes i en database.
Avatar billede coderdk Praktikant
02. juli 2008 - 03:28 #5
Det kan gøres i javascript :) Denne kræver jquery: http://tablesorter.com/docs/
Denne kan vist bruges for sig selv: http://www.kryogenix.org/code/browser/sorttable/
Avatar billede strit112 Nybegynder
02. juli 2008 - 05:37 #6
Mange tak =)
Avatar billede 2c Nybegynder
02. juli 2008 - 08:36 #7
Ellers vil et næste naturligt skridt være at begynde at programmere hjemmesiderne serverside. Til det er der flere forskellige muligheder.

Jeg foretrækker Microsofts ASP.NET. Alle de værktøjer du skal bruge til at arbejde med kan hentes her: www.asp.net

Der er ligeledes en masse tutorials, både på video og tekst form.

Det at gå igang med et serverside programmeringssprog, er naturligvis en større mundfuld, og hvis du kun skal bruge det til at lave tabellen er det overkill.
Avatar billede roenving Novice
02. juli 2008 - 16:58 #8
-- og at lave det i javascript kræver overhovedet ikke, at jQuery benyttes, men den slags libraries bruges mange gange som en genvej (og er som jQuery fyldt med invalid kode !-)

-- selve kodningen i javascript er sådan set ikke det store problem, men skal det laves både validt og fremtidssikret, skal man holde tungen lige i munden !o]
Avatar billede olebole Juniormester
03. juli 2008 - 01:26 #9
<ole>

<script type="text/javascript">
function hasClassName(o, c) {
    var oRX = new RegExp("\\b"+c+"\\b", "i");
    return oRX.test(o.className);
}
function getInnerText(o) {
    var a=[],an=o.childNodes,i=an.length-1;
    do {a[i]=(an[i].nodeType==3?an[i].nodeValue:an[i].nodeType==1?arguments.callee(an[i]):"")} while(i--);
    return a.join("");
}
function tableSort(a, b) {
    var i = tableSort.sortIndex;
    if (a[i]-1<a[i] && b[i]-1<b[i]) {
        a[i] = Number(a[i]);
        b[i] = Number(b[i]);
    }
    return a[i]>b[i] ? 1 : a[i]<b[i] ? -1 : 0;
}
function sortCol(nInx, oTh) {
    var oTbl = oTh.parentNode.parentNode.parentNode,
    oBdy = oTbl.getElementsByTagName("tbody")[0],
    oBdyNew = oBdy.cloneNode(false),
    sInx = oTbl.getAttribute("sortInx"),
    aRows = oSortTables["tbl_"+sInx];
    tableSort.sortIndex = nInx;
    if (aRows.sortInx==nInx) aRows.reverse();
    else aRows.sort(tableSort);
    for (var i=0,j=aRows.length; i<j; i++) oBdyNew.appendChild(aRows[i][0]);
    oTbl.replaceChild(oBdyNew, oBdy);
    aRows.sortInx = nInx;
    oBdy = null;
}
function initSortTable(oTbl) {
    var a = [], aCells = null,
    oBdy = oTbl.getElementsByTagName("tbody")[0],
    aRows = oBdy.getElementsByTagName("tr");
    for (var i=0,j=aRows.length; i<j; i++) {
        aCells = aRows[i].getElementsByTagName("td");
        a[i] = [];
        a[i][0] = aRows[i];
        for (var m=0,n=aCells.length; m<n; m++) {
            a[i][m+1] = getInnerText(aCells[m]);
        }
    }
    if (typeof initSortTable.nSortInx!="number") initSortTable.nSortInx = 0;
    oTbl.setAttribute("sortInx", initSortTable.nSortInx);
    oSortTables["tbl_"+(initSortTable.nSortInx++)] = a;
}

var oSortTables = {};
window.onload = function(){
    var aTbl = document.getElementsByTagName("table");
    for (var i=0,j=aTbl.length; i<j; i++) {
        if (hasClassName(aTbl[i], "sortTable")) initSortTable(aTbl[i]);
    }
}
</script>
<table class="sortTable">
<thead>
<tr>
    <th onclick="sortCol(1, this)">Tal</th>
    <th onclick="sortCol(2, this)">Navn</th>
</tr>
</thead>
<tbody>
<tr>
    <td>14</td>
    <td>Anne Petersen</td>
</tr>
<tr>
    <td>7</td>
    <td>Ole Clausen</td>
</tr>
<tr>
    <td>4</td>
    <td>Gert Hansen</td>
</tr>
<tr>
    <td>9</td>
    <td>Niels Larsen</td>
</tr>
<tr>
    <td>1</td>
    <td>Jes Rønving</td>
</tr>
<tr>
    <td>10</td>
    <td>Susanne Jensen</td>
</tr>
</tbody>
</table>

/mvh
</bole>
Avatar billede olebole Juniormester
03. juli 2008 - 01:49 #10
- og hvis du evt. vil ændre indhold i de enkelte celler/rækker undervejs, vil det nok være en fordel at skrive det sådan:

<script type="text/javascript">
function hasClassName(o, c) {
    var oRX = new RegExp("\\b"+c+"\\b", "i");
    return oRX.test(o.className);
}
function getInnerText(o) {
    var a=[],an=o.childNodes,i=an.length-1;
    do {a[i]=(an[i].nodeType==3?an[i].nodeValue:an[i].nodeType==1?arguments.callee(an[i]):"")} while(i--);
    return a.join("");
}
function tableSort(a, b) {
    var i = tableSort.sortIndex;
    return a[i]>b[i] ? 1 : a[i]<b[i] ? -1 : 0;
}
function sortCol(nInx, oTh) {
    var oTbl = oTh.parentNode.parentNode.parentNode,
    oBdy = oTbl.getElementsByTagName("tbody")[0],
    oBdyNew = oBdy.cloneNode(false),
    sInx = oTbl.getAttribute("sortInx"),
    aRows = oSortTables["tbl_"+sInx];
    tableSort.sortIndex = nInx;
    if (aRows.sortInx==nInx) aRows.reverse();
    else aRows.sort(tableSort);
    for (var i=0,j=aRows.length; i<j; i++) oBdyNew.appendChild(aRows[i][0]);
    oTbl.replaceChild(oBdyNew, oBdy);
    aRows.sortInx = nInx;
    oBdy = null;
}
function initSortTable(oTbl) {
    var a = [], aCells = null, sTxt = "",
    oBdy = oTbl.getElementsByTagName("tbody")[0],
    aRows = oBdy.getElementsByTagName("tr");
    for (var i=0,j=aRows.length; i<j; i++) {
        aCells = aRows[i].getElementsByTagName("td");
        a[i] = [];
        a[i][0] = aRows[i];
        for (var m=0,n=aCells.length; m<n; m++) {
            sTxt = getInnerText(aCells[m]);
            a[i][m+1] = sTxt-1<sTxt ? Number(sTxt) : sTxt;
        }
    }
    if (typeof initSortTable.nSortInx!="number") initSortTable.nSortInx = 0;
    if (!oTbl.getAttribute("sortInx")) {
        initSortTable.nSortInx++;
        oTbl.setAttribute("sortInx", initSortTable.nSortInx);
    }
    oSortTables["tbl_"+initSortTable.nSortInx] = a;
}
function initSortTables() {
    var aTbl = document.getElementsByTagName("table");
    for (var i=0,j=aTbl.length; i<j; i++) {
        if (hasClassName(aTbl[i], "sortTable")) initSortTable(aTbl[i]);
    }
}

var oSortTables = {};
window.onload = function(){
    initSortTables();
}
</script>

Kald initSortTable med en reference til tabellen som argument, hvergang der er ændret i en tabels indhold
Avatar billede strit112 Nybegynder
04. juli 2008 - 22:58 #11
Wow, tak for al den respons. Jeg prøvede med den som coderdk linkede uden jQuery og den virker fint, så har ikke rigtig kigget ind siden. Og siden det ikke var skrevet som et svar, men en kommentar, har jeg ikke været i stand til at give point.

Tror dog jeg vil give mig i kast med ASP.
Lige nu er det godt nok kun tabellen jeg skal bruge, men jeg er 18, og har meget at lære endnu. Så jeg vil egentlig igang med det næste efter html :P
Avatar billede strit112 Nybegynder
04. juli 2008 - 23:05 #12
Hmm, da jeg ville svare på et andet spørgsmål herinde, så jeg at jeg kun kunne skrive kommentar der. Så det er vist bare mig som ikke helt ved hvordan man gør herinde :P
Avatar billede coderdk Praktikant
05. juli 2008 - 14:18 #13
Du beder bare om et svar :)
Avatar billede 2c Nybegynder
05. juli 2008 - 23:24 #14
Så smider jeg også lige et svar, hvis du kunne bruge det jeg skrev om ASP.NET :-)
Du afviser bare mit svar, hvis det ikke er tilfældet.
Avatar billede coderdk Praktikant
19. juli 2008 - 12:03 #15
?
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