Avatar billede midgaardsorm Nybegynder
16. august 2007 - 09:26 Der er 6 kommentarer og
1 løsning

Sotere tabel med tryk på en overskrift.

Jeg er sikker at det er mig der er dum ..... men jeg kan ikke finde en løsning på mit ønske.

Jeg vil gerne kunne ændre sortering af indholdet i et sæt database-resultater ved at klikke på en kolonne-overskrift.

Der må være en nemt løsning men jeg kan ikke se den :-)
Avatar billede olebole Juniormester
18. august 2007 - 15:25 #1
<ole>

Nem og nem ... men det kan lade sig gøre  =)

<script type="text/JavaScript">
function OCScanComp(a, b) { // OCScanComp Vers. 1.0 Beta - (c) Copyright: Ole Clausen - 2007
    if (typeof a=="number"&&typeof b=="number") return parseFloat(a)>parseFloat(b)?1:parseFloat(a)<parseFloat(b)?-1:0;
    if(!OCScanComp.o){OCScanComp.o={};for(var i=0,j=OCScanComp.c.length;i<j;i++)OCScanComp.o[OCScanComp.c.charAt(i)]=i};
    var m,n;for(var i=0,j=a.length,k=b.length; i<j; i++){if(i>=k)return 1;m=OCScanComp.o[a.charAt(i).toLowerCase()];
    n=OCScanComp.o[b.charAt(i).toLowerCase()];if(m>n)return 1;if(m<n)return -1}return 0;
};OCScanComp.c="_-. 0123456789a\u00e0bcde\u00e9fghijklmnopqrstuvwxy\u00fcz\u00e6\u00e4\u00f8\u00f6\u00e5";

var oActHead = null;
function sortArrays(a, b) {
    return OCScanComp(a[0], b[0]);
}
function sortTable(nInx, sBodyID, oHead) {
    var oBody = document.getElementById(sBodyID);
    var sOrder = oHead.getAttribute("order");
    var a = [], aTr = oBody.getElementsByTagName("tr");
    var s = "", oCl = oBody.cloneNode(false);
    oCl.attributes.removeNamedItem("id");
    for (var i=aTr.length-1; i>=0; i--) {
        s = aTr[i].getElementsByTagName("td")[nInx].firstChild ? aTr[i].getElementsByTagName("td")[nInx].firstChild.nodeValue : "";
        a[i] = [s, aTr[i]];
    }
    a.sort(sortArrays);
    if (sOrder=="desc") a.reverse();
    if (oActHead&&oActHead!=oHead) oActHead.attributes.removeNamedItem("order");
    oHead.setAttribute("order", sOrder=="desc"?"asc":"desc");
    oActHead = oHead;
    for (var i=0,j=a.length; i<j; i++) oCl.appendChild(a[i][1]);
    oBody.parentNode.replaceChild(oCl, oBody);
    oCl.setAttribute("id", sBodyID);
    oBody = a = aTr = null;
}
</script>

<table border="1">
<thead>
<tr style="cursor:pointer">
    <th onclick="sortTable(0,'sortBody',this)">Fornavn</th>
    <th onclick="sortTable(1,'sortBody',this)">Efternavn</th>
    <th onclick="sortTable(2,'sortBody',this)">Alder</th>
    <th onclick="sortTable(3,'sortBody',this)">Køn</th>
</tr>
</thead>
<tbody id="sortBody">
<tr>
    <td>Anne-Mette</td>
    <td>Rasmussen</td>
    <td>32</td>
    <td>K</td>
</tr>
<tr>
    <td>Annemette</td>
    <td>Sørensen</td>
    <td>64</td>
    <td>K</td>
</tr>
<tr>
    <td>Jan</td>
    <td>Olsen</td>
    <td>43</td>
    <td>M</td>
</tr>
<tr>
    <td>Lizette</td>
    <td>Hansen</td>
    <td>28</td>
    <td>K</td>
</tr>
<tr>
    <td>Hansemann</td>
    <td>Luchter</td>
    <td>55</td>
    <td>M</td>
</tr>
<tr>
    <td>Stig</td>
    <td>Ælling</td>
    <td>60</td>
    <td>M</td>
</tr>
<tr>
    <td>Dennis</td>
    <td>Kristensen</td>
    <td>26</td>
    <td>M</td>
</tr>
<tr>
    <td>Kasper</td>
    <td>Østerby</td>
    <td>16</td>
    <td>M</td>
</tr>
<tr>
    <td>Sascha</td>
    <td>Larsen</td>
    <td>17</td>
    <td>K</td>
</tr>
<tr>
    <td>Ole</td>
    <td>Clausen</td>
    <td>52</td>
    <td>M</td>
</tr>
<tr>
    <td>Nils</td>
    <td>Christensen</td>
    <td>37</td>
    <td>M</td>
</tr>
<tr>
    <td>Anette</td>
    <td>Petersen</td>
    <td>57</td>
    <td>K</td>
</tr>
<tr>
    <td>Karen</td>
    <td>Ålbeck</td>
    <td>46</td>
    <td>K</td>
</tr>
<tr>
    <td>Jens</td>
    <td>Poulsen</td>
    <td>53</td>
    <td>M</td>
</tr>
</tbody>
</table>

/mvh
</bole>
Avatar billede midgaardsorm Nybegynder
20. august 2007 - 11:01 #2
Ok det ser nu fint ud og det vil jeg kunne tilpasse....men min liste bliver leveret fra en SQL-database..... hvvad skal der så laves om ?
Avatar billede olebole Juniormester
20. august 2007 - 13:33 #3
Ikke noget. Scriptet er rystende ligeglad med, hvad der har skrevet tabellen ud  =)
Avatar billede midgaardsorm Nybegynder
28. august 2007 - 12:19 #4
Det virker .... fik Frontpage til at forstå at data skulle komme fra en SQL-server.

Her er mit resultat :
<script type="text/JavaScript">
function OCScanComp(a, b) { // OCScanComp Vers. 1.0 Beta - (c) Copyright: Ole Clausen - 2007
    if (typeof a=="number"&&typeof b=="number") return parseFloat(a)>parseFloat(b)?1:parseFloat(a)<parseFloat(b)?-1:0;
    if(!OCScanComp.o){OCScanComp.o={};for(var i=0,j=OCScanComp.c.length;i<j;i++)OCScanComp.o[OCScanComp.c.charAt(i)]=i};
    var m,n;for(var i=0,j=a.length,k=b.length; i<j; i++){if(i>=k)return 1;m=OCScanComp.o[a.charAt(i).toLowerCase()];
    n=OCScanComp.o[b.charAt(i).toLowerCase()];if(m>n)return 1;if(m<n)return -1}return 0;
};OCScanComp.c="_-. 0123456789a\u00e0bcde\u00e9fghijklmnopqrstuvwxy\u00fcz\u00e6\u00e4\u00f8\u00f6\u00e5";

var oActHead = null;
function sortArrays(a, b) {
    return OCScanComp(a[0], b[0]);
}
function sortTable(nInx, sBodyID, oHead) {
    var oBody = document.getElementById(sBodyID);
    var sOrder = oHead.getAttribute("order");
    var a = [], aTr = oBody.getElementsByTagName("tr");
    var s = "", oCl = oBody.cloneNode(false);
    oCl.attributes.removeNamedItem("id");
    for (var i=aTr.length-1; i>=0; i--) {
        s = aTr[i].getElementsByTagName("td")[nInx].firstChild ? aTr[i].getElementsByTagName("td")[nInx].firstChild.nodeValue : "";
        a[i] = [s, aTr[i]];
    }
    a.sort(sortArrays);
    if (sOrder=="desc") a.reverse();
    if (oActHead&&oActHead!=oHead) oActHead.attributes.removeNamedItem("order");
    oHead.setAttribute("order", sOrder=="desc"?"asc":"desc");
    oActHead = oHead;
    for (var i=0,j=a.length; i<j; i++) oCl.appendChild(a[i][1]);
    oBody.parentNode.replaceChild(oCl, oBody);
    oCl.setAttribute("id", sBodyID);
    oBody = a = aTr = null;
}
</script>

<table border="1">
<thead>
<tr style="cursor:pointer">
    <th onclick="sortTable(0,'sortBody',this)">ID</th>
    <th onclick="sortTable(1,'sortBody',this)">Dato</th>
    <th onclick="sortTable(2,'sortBody',this)">Udfyldt_af</th>
    <th onclick="sortTable(3,'sortBody',this)">Kundens_navn</th>
</tr>
</thead>
<tbody id="sortBody">

    <!--webbot bot="DatabaseRegionStart" s-columnnames="ID,Dato,Udfyldt_af,Kundens_navn" s-columntypes="131,135,202,202" s-dataconnection="web" b-tableformat="TRUE" b-menuformat="FALSE" s-menuchoice s-menuvalue b-tableborder="TRUE" b-tableexpand="TRUE" b-tableheader="TRUE" b-listlabels="TRUE" b-listseparator="TRUE" i-listformat="0" b-makeform="FALSE" s-recordsource="Ekstern_reklamation" s-displaycolumns="ID,Dato,Udfyldt_af,Kundens_navn" s-criteria s-order s-sql="SELECT ID,Dato,Udfyldt_af,Kundens_navn FROM Ekstern_reklamation" b-procedure="FALSE" clientside suggestedext="asp" s-defaultfields s-norecordsfound="Der er ikke blevet returneret nogen poster." i-maxrecords="256"  botid="0" u-dblib="_fpclass/fpdblib.inc" u-dbrgn1="_fpclass/fpdbrgn1.inc" u-dbrgn2="_fpclass/fpdbrgn2.inc" tag="TBODY" preview="&lt;tr&gt;&lt;td colspan=64 bgcolor=&quot;#FFFF00&quot; width=&quot;100%&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;Dette er begyndelsen af området med databaseresultater. Denne side kan kun vises korrekt, hvis den hentes fra en webserver med en webbrowser. Det aktuelle websted er gemt på din harddisk eller på det lokale netværk.&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;" startspan i-GroupSize --><!--#include file="_fpclass/fpdblib.inc"-->
<% if 0 then %>
<SCRIPT Language="JavaScript">
document.write("<div style='background: yellow; color: black;'>Komponenten Databaseresultater på denne side kan ikke vise databaseindhold. Siden skal have et filnavn, der slutter med '.asp', og webstedet skal findes på en server, der understøtter Active Server Pages.</div>");
</SCRIPT>
<% end if %>
<%
fp_sQry="SELECT ID,Dato,Udfyldt_af,Kundens_navn FROM Ekstern_reklamation"
fp_sDefault=""
fp_sNoRecords="<tr><td colspan=4 align=""LEFT"" width=""100%"">Der er ikke blevet returneret nogen poster.</td></tr>"
fp_sDataConn="web"
fp_iMaxRecords=256
fp_iCommandType=1
fp_iPageSize=0
fp_fTableFormat=True
fp_fMenuFormat=False
fp_sMenuChoice=""
fp_sMenuValue=""
fp_sColTypes="&ID=131&Dato=135&Udfyldt_af=202&Kundens_navn=202&"
fp_iDisplayCols=4
fp_fCustomQuery=False
BOTID=0
fp_iRegion=BOTID
%>
<!--#include file="_fpclass/fpdbrgn1.inc"-->
<!--webbot bot="DatabaseRegionStart" endspan i-checksum="35833" --><tr>
      <td>
      <!--webbot bot="DatabaseResultColumn" s-columnnames="ID,Dato,Udfyldt_af,Kundens_navn,Kundens_tlf,Kontaktperson,Opdaget,Beskrivelse,Arsag,Rettet,Undgaa,Konsekvens,Modtaget,Arkiveret,Navn_pa_fjerncomputer,Brugernavn,Web-browsertype,Tidsstempel,upsize_ts,attached,Lukket,fil,Mail" s-column="ID" b-tableformat="TRUE" b-hashtml="FALSE" b-makelink="FALSE" clientside b-MenuFormat preview="&lt;font size=&quot;-1&quot;&gt;&amp;lt;&amp;lt;&lt;/font&gt;ID&lt;font size=&quot;-1&quot;&gt;&amp;gt;&amp;gt;&lt;/font&gt;" startspan --><%=FP_FieldVal(fp_rs,"ID")%><!--webbot bot="DatabaseResultColumn" endspan i-checksum="62813" --></td>
      <td>
      <!--webbot bot="DatabaseResultColumn" s-columnnames="ID,Dato,Udfyldt_af,Kundens_navn,Kundens_tlf,Kontaktperson,Opdaget,Beskrivelse,Arsag,Rettet,Undgaa,Konsekvens,Modtaget,Arkiveret,Navn_pa_fjerncomputer,Brugernavn,Web-browsertype,Tidsstempel,upsize_ts,attached,Lukket,fil,Mail" s-column="Dato" b-tableformat="TRUE" b-hashtml="FALSE" b-makelink="FALSE" clientside b-MenuFormat preview="&lt;font size=&quot;-1&quot;&gt;&amp;lt;&amp;lt;&lt;/font&gt;Dato&lt;font size=&quot;-1&quot;&gt;&amp;gt;&amp;gt;&lt;/font&gt;" startspan --><%=FP_FieldVal(fp_rs,"Dato")%><!--webbot bot="DatabaseResultColumn" endspan i-checksum="3287" --></td>
      <td>
      <!--webbot bot="DatabaseResultColumn" s-columnnames="ID,Dato,Udfyldt_af,Kundens_navn,Kundens_tlf,Kontaktperson,Opdaget,Beskrivelse,Arsag,Rettet,Undgaa,Konsekvens,Modtaget,Arkiveret,Navn_pa_fjerncomputer,Brugernavn,Web-browsertype,Tidsstempel,upsize_ts,attached,Lukket,fil,Mail" s-column="Udfyldt_af" b-tableformat="TRUE" b-hashtml="FALSE" b-makelink="FALSE" clientside b-MenuFormat preview="&lt;font size=&quot;-1&quot;&gt;&amp;lt;&amp;lt;&lt;/font&gt;Udfyldt_af&lt;font size=&quot;-1&quot;&gt;&amp;gt;&amp;gt;&lt;/font&gt;" startspan --><%=FP_FieldVal(fp_rs,"Udfyldt_af")%><!--webbot bot="DatabaseResultColumn" endspan i-checksum="27877" --></td>
      <td>
      <!--webbot bot="DatabaseResultColumn" s-columnnames="ID,Dato,Udfyldt_af,Kundens_navn,Kundens_tlf,Kontaktperson,Opdaget,Beskrivelse,Arsag,Rettet,Undgaa,Konsekvens,Modtaget,Arkiveret,Navn_pa_fjerncomputer,Brugernavn,Web-browsertype,Tidsstempel,upsize_ts,attached,Lukket,fil,Mail" s-column="Kundens_navn" b-tableformat="TRUE" b-hashtml="FALSE" b-makelink="FALSE" clientside b-MenuFormat preview="&lt;font size=&quot;-1&quot;&gt;&amp;lt;&amp;lt;&lt;/font&gt;Kundens_navn&lt;font size=&quot;-1&quot;&gt;&amp;gt;&amp;gt;&lt;/font&gt;" startspan --><%=FP_FieldVal(fp_rs,"Kundens_navn")%><!--webbot bot="DatabaseResultColumn" endspan i-checksum="32225" --></td>
    </tr>
    <!--webbot bot="DatabaseRegionEnd" b-tableformat="TRUE" b-menuformat="FALSE" u-dbrgn2="_fpclass/fpdbrgn2.inc" i-groupsize="5" clientside tag="TBODY" preview="&lt;tr&gt;&lt;td colspan=64 bgcolor=&quot;#FFFF00&quot; width=&quot;100%&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;Dette er slutningen af området med databaseresultater.&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;&lt;TR&gt;&lt;TD VALIGN=MIDDLE COLSPAN=64&gt;&lt;NOBR&gt;&lt;INPUT TYPE=Button VALUE=&quot;  |&lt;  &quot;&gt;&lt;INPUT TYPE=Button VALUE=&quot;  &lt;  &quot;&gt;&lt;INPUT TYPE=Button VALUE=&quot;  &gt;  &quot;&gt;&lt;INPUT TYPE=Button VALUE=&quot;  &gt;|  &quot;&gt;  [1/5]&lt;/NOBR&gt;&lt;BR&gt;&lt;/td&gt;&lt;/tr&gt;" startspan --><!--#include file="_fpclass/fpdbrgn2.inc"-->
<!--webbot bot="DatabaseRegionEnd" endspan i-checksum="62730" --></tbody>
</table>

<table width="100%" border="1">
    <thead>
       
Skriv et svar og få point
Avatar billede olebole Juniormester
28. august 2007 - 15:27 #5
- hermed gjort  ;o)
Avatar billede olebole Juniormester
28. august 2007 - 16:55 #6
Tak for points  ;o)
Avatar billede midgaardsorm Nybegynder
13. september 2007 - 09:15 #7
Hmm.... en lille detalje : Hvis man sorterer på en dato bliver den behandlet som et tal : 01-01-2007 kommer før 02-01-2001.

Kan man mon lave det anderledes ?
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
Kurser inden for grundlæggende programmering

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