ugrás a tartalomhoz

Táblázat adatainak ABC sorrendje

Zazu · 2009. Jún. 11. (Cs), 01.47
Mi lenne a megfelelő megoldás táblázat adott oszlopának betűrend szerinti felsorolásához?
 
1

Script

Zazu · 2009. Jún. 11. (Cs), 01.51
function setDataType(cValue)
{
var isDate = new Date(cValue);
if (isDate == "NaN")
{
if (isNaN(cValue))
{
cValue = cValue.toUpperCase();
return cValue;
}
else
{
var myNum;
myNum = String.fromCharCode(48 + cValue.length) + cValue;
return myNum;
}
}
else
{
var myDate = new String();
myDate = isDate.getFullYear() + " " ;
myDate = myDate + isDate.getMonth() + " ";
myDate = myDate + isDate.getDate(); + " ";
myDate = myDate + isDate.getHours(); + " ";
myDate = myDate + isDate.getMinutes(); + " ";
myDate = myDate + isDate.getSeconds();
return myDate ;
}
}
function sortTable(col, tableToSort)
{
var iCurCell = col + tableToSort.cols;
var totalRows = tableToSort.rows.length;
var bSort = 0;
var colArray = new Array();
var oldIndex = new Array();
var indexArray = new Array();
var bArray = new Array();
var newRow;
var newCell;
var i;
var c;
var j;
for (i=1; i < tableToSort.rows.length; i++)
{
colArray[i - 1] = setDataType(tableToSort.cells(iCurCell).innerText);
iCurCell = iCurCell + tableToSort.cols;
}
for (i=0; i < colArray.length; i++)
{
bArray[i] = colArray[i];
}
colArray.sort();
for (i=0; i < colArray.length; i++)
{
indexArray[i] = (i+1);
for(j=0; j < bArray.length; j++)
{
if (colArray[i] == bArray[j])
{
for (c=0; c<i; c++)
{
if ( oldIndex[c] == (j+1) )
{
bSort = 1;
}
}
if (bSort == 0)
{
oldIndex[i] = (j+1);
}
bSort = 0;
}
}
}
for (i=0; i<oldIndex.length; i++)
{
newRow = tableToSort.insertRow();
for (c=0; c<tableToSort.cols; c++)
{
newCell = newRow.insertCell();
newCell.innerHTML = tableToSort.rows(oldIndex[i]).cells(c).innerHTML;
}
}
for (i=1; i<totalRows; i++)
{
tableToSort.moveRow((tableToSort.rows.length -1),1);
}
for (i=1; i<totalRows; i++)
{
tableToSort.deleteRow();
}
}
6

sortable

krisy · 2009. Jún. 11. (Cs), 20.30
Van egy ilyen táblázat rendező is:
http://www.kryogenix.org/code/browser/sorttable/
2

Kiírás

Zazu · 2009. Jún. 11. (Cs), 01.53
<table width="300" name="rsTable" id="rsTable">
<TR>
<TD><A href="javascript:sortTable(0, rsTable);">1. szempont</A></TD>
<TD><A href="javascript:sortTable(1, rsTable);">2. szempont</A></TD>
</TR></FONT>
<tr>
<TD>adat1</TD>
<TD>adat2</TD>
</tr>

...stb
</table>
3

Hol a hiba?

Zazu · 2009. Jún. 11. (Cs), 01.54
A válaszokat előre is köszönöm :)
4

jquery plugin

demo · 2009. Jún. 11. (Cs), 06.26
van egy ilyen hogy tablesorter
7

nagyszerű!

Zazu · 2009. Jún. 15. (H), 00.59
Kiválóan alkalmas lesz! Köszönöm! :)
5

Magyar ABC?

krisy · 2009. Jún. 11. (Cs), 07.33
A legtöbb táblázat rendező amit láttam úgy működik, hogy a betűk karakterek kódját hasonlítja össze.
Ezzel annyi gond lehet, hogy ha tartalmaz az oszlop mondjuk ékezetes betűket, akkor elromlik a rendezés :-(
Emlékem szerint a karakterkódok valahogy úgy jönnek sorban, hogy először vannak az angol ABC betűi, utána minden más.
Tehát az A,Á,B betűk "rendezése" A,B,Á lesz.

Esetleg annyit meg lehet csinálni, hogy csinálsz egy string-et a betűkből, amik szerepelhetnek az adott oszlopban (magyar ABC-ben rendezve, tehát var a ="aábc..."), majd ebből a string-ből szeded ki, hogy hányadik helyen szerepel a keresett betű, és ezeket a számokat hasonlítod össze.
(ha jól láttam, talán Zazu kódjának a 14. sorát
myNum = String.fromCharCode(48 + cValue.length) + cValue;
kellene átírni).

Ha tévedtem, kövezzetek meg nyugodtan :-)