Avatar billede kalaharikid Nybegynder
26. september 2007 - 11:05 Der er 7 kommentarer og
1 løsning

sorter kolonne dynamisk IE55+ med internat. tegn f.eks. arabisk?

Hej, jeg har en tabel med 3 kolonner der skal kunne sortere dynamisk...

http://vfs.dansk.nu/ar/gram_terms.asp

Det går fint PÅNÆR internationale tegn såsom arabisk (se linket). Har læst om noget der hedder collation, men ville gerne have et working sample..eller et godt link!
Avatar billede johan.o Nybegynder
26. september 2007 - 16:49 #1
Så vidt jeg har forstået er collation et spørgsmål om hvilket tegnsæt der skal bruges ved sammenligning af tabel indholdet.

Eksempel klippet fra mysql.com :

SELECT k
FROM t1
ORDER BY k COLLATE latin1_german2_ci;

..så her laves en sortering hvor latin1_german2_ci tegnsættet benyttes. Collation kan vist også sættes direkte på din tabel, f.eks. via phpMyAdmin.

Specifikt hvilket tegnsæt du skal bruge for at din sortering bliver som du ønsker skal jeg ikke kunne sige....men utf-8 er vel ikke noget dårligt bud...eller ?

Link til mysql.com --> http://dev.mysql.com/doc/refman/5.1/en/charset-collations.html

Mvh. Johan
Avatar billede johan.o Nybegynder
26. september 2007 - 16:56 #2
..hmmm bliver helt i tvivl om du mener HTML tabeller ?!..

Hvis det er tilfældet kan jeg ikke lige fortælle dig hvordan du skal bruge collation, men hvis din side benytter internationale tegn bør du vel først og fremmest benytte et tegnsæt der rummer disse tegn...og uden at være 100% så er utf-8 vist et bredt favnende bud.

Mvh. Johan
Avatar billede kalaharikid Nybegynder
27. september 2007 - 11:27 #3
Johan> dvs. at gemme siden i utf-8 burde være nok... (det ER tabeller og ikke udtræk fra database)?
Avatar billede johan.o Nybegynder
27. september 2007 - 12:05 #4
Mnjah...det skal jeg ikke helt kunne sige. I koden kan jeg se at de 'almindelige' bogstaver står i 'ren' form og de arabiske står med html koder...jeg tror mere det er der problemet er. Det javascript der sortere rækkerne kigger på indholdet af cellerne og sammenligner det.....det er sikkert html koderne der volder besværet....hmm 'what to do ?'....

Det er fint nok med utf-8 definitionen hvis du kan skrive de arabiske tegn direkte i koden....men det kan du vel ikke ?.....så på en dansk computer er du vel tvunget til at bruge html koder til det.....tricky :)...

Jeg er foreløbig blank...prøver lige at kigge lidt på javascriptet og konsekvenserne af html koder...

Mvh. Johan
Avatar billede johan.o Nybegynder
27. september 2007 - 12:34 #5
Javascriptet fungere ikke når du prøver at sortere efter de arabiske tegn da der er tilføjet noget til tabellen.

Scriptet leder efter en specifik .nodeValue men fordi der er tilføjet et <p> tag og et <span> tag er indholdet i <td> tagget 'null'.

Så spørgsmålet er hvordan er siden genereret....har du kodet den i ren html er dannes siden af noget server side script ?

I det følgende har jeg fjernet de ekstra nodes men da jeg ikke aner om sorteringen er korrekt må du lige kigge og komme tilbage.

-->

<html>
<head>
<title>Prepositions of place 1</title>
<script type="text/javascript">
<!--
function changecolor(id, color) {
element = document.getElementById(id);
event.cancelBubble = true;
oldcolor = element.currentStyle.background;
element.style.background = color;
}

function sortByCol(colNum, ascending)
{
//    IE5 Dynamic table sort by Scott Richards

    var table = theTable;
    var rowCount = table.rows.length;
    var headerRow = table.rows(0);
    var headerCol = headerRow.cells(colNum);

    if (ascending) {    // sort in increasing order
        for (j=0;j < rowCount - 1; j++) {
            for (i=0;i < rowCount - j - 1;i++) {
                rowCurr = table.rows(i);
                rowNext = table.rows(i+1);

                if (rowNext.cells(colNum).firstChild.nodeValue < rowCurr.cells(colNum).firstChild.nodeValue)
                    rowNext.swapNode(rowCurr);
            }
        }
    } else {    // sort in decreasing order
        for (j=1;j < rowCount; j++) {
            for (i=1;i < rowCount - j;i++) {
                rowCurr = table.rows(i);
                rowNext = table.rows(i+1);
                  if (rowNext.cells(colNum).firstChild.nodeValue > rowCurr.cells(colNum).firstChild.nodeValue)
                    rowNext.swapNode(rowCurr);
            }
        }
    }
}
//-->
</script>
<style type="text/css">
div{
float:left;
display:block;
cursor:hand;
}
body {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 14px;
    background-color: #FFFFFF;
    margin-top: 0px;
    margin-left: 0px;
    margin-right: 0px;
    overflow-x:hidden;
   
}
td {
font-size: 14px;
}
.style1 {color: #FFFFFF}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="../000_css/vfs_rtl.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
.style2 {color: #333333}
-->
</style>
</head>
<body >
<TABLE border=0 align=center
cellPadding=0 cellSpacing=0 background="" bgcolor="#FFFFFF" style="WIDTH: 100%; height:36;" summary="">
  <TR>
    <TD width="36" background="" class=""><img src="http://vfs.dansk.nu/laerervejledning/images/bar_vfs_corner.gif" width="36" height="36"></TD>
    <TD height="36"
background="http://vfs.dansk.nu/laerervejledning/images/bar_vfs_tile.gif"><span class="style1"><FONT
face=Verdana size=4>&#1573;&#1588;&#1575;&#1585;&#1575;&#1578; &#1602;&#1608;&#1575;&#1593;&#1583;&#1610;&#1577;</FONT></span></TD>
    <TD width=63 valign="middle" background="http://vfs.dansk.nu/laerervejledning/images/bar_vfs_tile.gif" class=""><a href="java script:history.go(-1);"></a></TD>
    <TD width=63 align=left vAlign=middle background="http://vfs.dansk.nu/laerervejledning/images/bar_vfs_tile.gif" class=""><A  onClick="java script:window.print();" href="java script:;"><IMG
src="http://vfs.dansk.nu/laerervejledning/images/bar_vfs_udskriv.gif" alt="" width="63" height="33" hspace=0
border=0></A></TD>
    <TD width=63 align=left vAlign=middle background="http://vfs.dansk.nu/laerervejledning/images/bar_vfs_tile.gif" class=""><A href="java script:window.close();"><IMG
src="http://vfs.dansk.nu/laerervejledning/images/bar_vfs_lukvindue.gif" width="63" height="33"
border=0></A></TD>
  </TR>
</TABLE>
<table border="0" cellpadding="0" cellspacing="0" style="margin-left: 36px;margin-top: 16px;margin-right: 20px;">
  <tr>
    <td valign="top"><table width="550" border="0" cellpadding="0" cellspacing="0" id="theTable">
      <tr>
        <th nowrap valign="bottom"><div align="left"><strong><a href="java script:;" class="style2" onClick="sortByCol(0,true)">Dansk</a></strong></div></th>
        <th nowrap valign="bottom"><div align="left"><strong><a href="java script:;" class="style2" onClick="sortByCol(1,true)">Latin</a></strong></div></th>
        <th valign="top"><div align="left"><strong><a href="java script:;" class="style2" onClick="sortByCol(2,true)">Arabisk</a></strong></div></th>
      </tr>
      <tr>
        <td valign="top">1. grad</td>
        <td valign="top">Positiv</td>
        <td width="242">&#1575;&#1604;&#1589;&#1610;&#1594;&#1577; &#1575;&#1604;&#1571;&#1587;&#1575;&#1587;&#1610;&#1577;</td>
      </tr>
      <tr>
        <td valign="top">2. grad</td>
        <td valign="top">Komparativ</td>
        <td width="242">&#1589;&#1610;&#1594;&#1577; &#1575;&#1604;&#1605;&#1602;&#1575;&#1585;&#1606;&#1577;</td>
      </tr>
      <tr>
        <td valign="top">3. grad</td>
        <td valign="top">Superlativ</td>
        <td width="242">&#1589;&#1610;&#1594;&#1577; &#1575;&#1604;&#1578;&#1601;&#1590;&#1610;&#1604; &#1575;&#1604;&#1593;&#1604;&#1610;&#1575;</span></p></td>
      </tr>
      <tr>
        <td valign="top">Aktiv </td>
        <td valign="top">Aktiv</td>
        <td width="242">&#1606;&#1588;&#1591;</td>
      </tr>
      <tr>
        <td valign="top">Bestemt</td>
        <td valign="top">Definit </td>
        <td width="242">&#1605;&#1615;&#1593;&#1585;&#1617;&#1601;</td>
      </tr>
      <tr>
        <td valign="top">Bindeord </td>
        <td valign="top">Konjunktion </td>
        <td width="242">&#1571;&#1583;&#1575;&#1577; &#1593;&#1591;&#1601;</td>
      </tr>
      <tr>
        <td valign="top">Biord </td>
        <td valign="top">Adverbium</td>
        <td width="242">&#1592;&#1585;&#1601;</td>
      </tr>
      <tr>
        <td valign="top">Bydem&aring;de&nbsp; </td>
        <td valign="top">Imperativ</td>
        <td width="242">&#1589;&#1610;&#1594;&#1577; &#1575;&#1604;&#1571;&#1605;&#1585;</td>
      </tr>
      <tr>
        <td valign="top">Datid</td>
        <td valign="top">Pr&aelig;teritum</td>
        <td width="242">&#1575;&#1604;&#1605;&#1575;&#1590;&#1610;</td>
      </tr>
      <tr>
        <td valign="top">Ejestedord</td>
        <td valign="top">Possessivt</td>
        <td width="242">&#1575;&#1604;&#1605;&#1615;&#1604;&#1603;&#1610;&#1577;</td>
      </tr>
      <tr>
        <td valign="top">Endelse</td>
        <td valign="top">Suffix</td>
        <td width="242">&#1573;&#1590;&#1575;&#1601;&#1577;</td>
      </tr>
      <tr>
        <td valign="top">Ental</td>
        <td valign="top">Singularis</td>
        <td width="242">&#1605;&#1601;&#1585;&#1583;</td>
      </tr>
      <tr>
        <td valign="top">Flertal</td>
        <td valign="top">Pluralis</td>
        <td width="242">&#1580;&#1605;&#1593;</td>
      </tr>
      <tr>
        <td valign="top">Forholdsord </td>
        <td valign="top">Pr&aelig;position</td>
        <td width="242">&#1581;&#1585;&#1601; &#1580;&#1585;</td>
      </tr>
      <tr>
        <td valign="top">Fremtid</td>
        <td valign="top">Futurum</td>
        <td width="242">&#1605;&#1587;&#1578;&#1602;&#1576;&#1604;</td>
      </tr>
      <tr>
        <td valign="top">F&oslash;rnutid</td>
        <td valign="top">Perfektum</td>
        <td width="242">&#1605;&#1575;&#1590;&#1610; &#1578;&#1575;&#1605;</td>
      </tr>
      <tr>
        <td valign="top">Genstandsled</td>
        <td valign="top">Objekt</td>
        <td width="242">&#1605;&#1601;&#1593;&#1608;&#1604; &#1576;&#1607;</td>
      </tr>
      <tr>
        <td valign="top">Gradb&oslash;jning</td>
        <td valign="top">komparation</td>
        <td width="242">&#1583;&#1585;&#1580;&#1577; &#1575;&#1604;&#1578;&#1589;&#1585;&#1610;&#1601;</td>
      </tr>
      <tr>
        <td valign="top">Grundled</td>
        <td valign="top">Subjekt</td>
        <td width="242">&#1601;&#1575;&#1593;&#1604;</td>
      </tr>
      <tr>
        <td valign="top">Hensynsled</td>
        <td valign="top">dativobjekt</td>
        <td width="242">&#1605;&#1601;&#1593;&#1608;&#1604; &#1604;&#1571;&#1580;&#1604;&#1607;</td>
      </tr>
      <tr>
        <td valign="top">Henvisende</td>
        <td valign="top">Refleksivt</td>
        <td width="242">&#1575;&#1604;&#1605;&#1608;&#1589;&#1608;&#1604;</td>
      </tr>
      <tr>
        <td valign="top">Kendeord</td>
        <td valign="top">Artikel</td>
        <td width="242">&#1571;&#1583;&#1575;&#1577; &#1578;&#1593;&#1585;&#1610;&#1601;</td>
      </tr>
      <tr>
        <td valign="top">Medlyd</td>
        <td valign="top">Konsonant</td>
        <td width="242">&#1581;&#1585;&#1601; &#1587;&#1575;&#1603;&#1606;</td>
      </tr>
      <tr>
        <td valign="top">M&aring;desudsagnsord</td>
        <td valign="top">Modalverbum</td>
        <td width="242">&#1601;&#1593;&#1604; &#1605;&#1587;&#1575;&#1593;&#1583;</td>
      </tr>
      <tr>
        <td valign="top">Navnem&aring;de</td>
        <td valign="top">Infinitiv</td>
        <td width="242">&#1605;&#1589;&#1583;&#1585;</td>
      </tr>
      <tr>
        <td valign="top">Navneord</td>
        <td valign="top">Substantiver</td>
        <td width="242">&#1573;&#1587;&#1605;</td>
      </tr>
      <tr>
        <td valign="top">Nutid</td>
        <td valign="top">Pr&aelig;sens</td>
        <td width="242">&#1575;&#1604;&#1605;&#1590;&#1575;&#1585;&#1593;</td>
      </tr>
      <tr>
        <td valign="top">Omvendt ordstilling</td>
        <td valign="top">Inversion</td>
        <td width="242">&#1602;&#1604;&#1576;</td>
      </tr>
      <tr>
        <td valign="top">Ordstilling </td>
        <td valign="top">Syntaks </td>
        <td width="242">&#1578;&#1585;&#1578;&#1610;&#1576; &#1575;&#1604;&#1603;&#1604;&#1605;&#1575;&#1578;</td>
      </tr>
      <tr>
        <td valign="top">Passiv </td>
        <td valign="top">Passiv</td>
        <td width="242">&#1605;&#1576;&#1606;&#1610; &#1604;&#1604;&#1605;&#1580;&#1607;&#1608;&#1604;</td>
      </tr>
      <tr>
        <td valign="top">Personlige stedord </td>
        <td valign="top">Personlige pronominer </td>
        <td width="242">&#1588;&#1582;&#1589;&#1610;</td>
      </tr>
      <tr>
        <td valign="top">Selvlyd</td>
        <td valign="top">Vokal</td>
        <td width="242">&#1581;&#1585;&#1601; &#1593;&#1604;&#1577;</td>
      </tr>
      <tr>
        <td valign="top">Sp&oslash;rgende</td>
        <td valign="top">Interrogativt</td>
        <td width="242">&#1573;&#1587;&#1578;&#1601;&#1607;&#1575;&#1605;</td>
      </tr>
      <tr>
        <td valign="top">Stedord</td>
        <td valign="top">Pronominer</td>
        <td width="242">&#1590;&#1605;&#1610;&#1585;</td>
      </tr>
      <tr>
        <td valign="top">Till&aelig;gsord</td>
        <td valign="top">Adjektiver</td>
        <td width="242">&#1589;&#1601;&#1577;</td>
      </tr>
      <tr>
        <td valign="top">Ubestemt</td>
        <td valign="top">Indefinit</td>
        <td width="242">&#1594;&#1610;&#1585; &#1605;&#1593;&#1585;&#1617;&#1601;</td>
      </tr>
      <tr>
        <td valign="top">Udsagnsled</td>
        <td valign="top">Verbal</td>
        <td width="242">&#1573;&#1587;&#1605; &#1601;&#1593;&#1604;</td>
      </tr>
      <tr>
        <td valign="top">Udsagnsord</td>
        <td valign="top">Verbum</td>
        <td width="242">&#1601;&#1593;&#1604;</td>
      </tr>
      <tr>
        <td valign="top">Uregelm&aelig;ssig</td>
        <td valign="top">Irregul&aelig;r</td>
        <td width="242">&#1594;&#1610;&#1585; &#1602;&#1610;&#1575;&#1587;&#1610;</td>
      </tr>
    </table>   
    </td>
  </tr>
</table>
</body>
</html>

<--

Mvh. Johan
Avatar billede kalaharikid Nybegynder
27. september 2007 - 13:18 #6
Hej Johan ...DET VIRKER! Du skulle bare lige vide hvor mange hop af glæde det medførte herovre ;-) Læg svar så skal du få dine mere end velfortjente points !
Avatar billede johan.o Nybegynder
27. september 2007 - 15:19 #7
Det er da dejligt, men er du sikker på at den sortere de arabiske tegn rigtigt ?...der er nemlig ikke defineret læseretning nu...den skal vel være fra højre til venstre eller...?

Så i de <td> tags der har arabiske tegn skal du nok tilføje dir="rtl". Derudover har jeg fjernet nogle styles på teksten så du skal nok også tilføje style="width: 242px; font-size: 18px; text-align: center;"

Så tror jeg du er på vej :)

Mvh. Johan
Avatar billede kalaharikid Nybegynder
28. september 2007 - 09:17 #8
Hej Johan, ja, arabisk ser rigtigt ud (ifht. sortering i excel) ...lige nu er det kun et specialtegn i bosnisk der driller...
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