Form Table with data
- vickriz
- Novice


- Joined: Jul 28, 2003
- Posts: 31
- Loc: Phlippines
- Status: Offline
Hello folks i found this JavaScript code which sort table. its working on their demo page. but when i use it on my own and click the table header it occurs "error on page" at my window.status
anybody want to help??
here's the whole code..
anybody want to help??
here's the whole code..
Code: [ Select ]
JavaScript:
<!-- Begin Demo: Sorting data from table
function setdataType(cValue)
{
// THIS FUNCTION CONVERTS DATES AND NUMBERS FOR PROPER ARRAY
// SORTING WHEN IN THE SORT FUNCTION
var isDate = new Date(cValue);
if (isDate == "NaN")
{
if (isNaN(cValue))
{
// THE VALUE IS A StrING, MAKE ALL CHARACTERS IN
// StrING UPPER CASE TO ASSURE PROPER A-Z SORT
cValue = cValue.toUpperCase();
return cValue;
}
else
{
// VALUE IS A NUMBER, TO PREVENT StrING SORTING OF A NUMBER
// ADD AN ADDITIONAL DIGIT THAT IS THE + TO THE LENGTH OF
// THE NUMBER WHEN IT IS A StrING
var myNum;
myNum = String.fromCharCode(48 + cValue.length) + cValue;
return myNum;
}
}
else
{
// VALUE TO SORT IS A DATE, REMOVE ALL OF THE PUNCTUATION AND
// AND RETURN THE StrING NUMBER
//BUG - StrING AND NOT NUMERICAL SORT .....
// ( 1 - 10 - 11 - 2 - 3 - 4 - 41 - 5 etc.)
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();
//myDate = String.fromCharCode(48 + myDate.length) + myDate;
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;
// ** POPULATE THE ARRAY colArray WITH CONTENTS OF THE COLUMN SELECTED
for (i=1; i < tableToSort.rows.length; i++)
{
colArray[i - 1] = setdataType(tableToSort.cells(iCurCell).innerText);
iCurCell = iCurCell + tableToSort.cols;
}
// ** COPY ARRAY FOR COMPARISON AFTER SORT
for (i=0; i < colArray.length; i++)
{
bArray[i] = colArray[i];
}
// ** SORT THE COLUMN ITEMS
//alert ( colArray );
colArray.sort();
//alert ( colArray );
for (i=0; i < colArray.length; i++)
{ // LOOP THROUGH THE NEW SORTED ARRAY
indexArray[i] = (i+1);
for(j=0; j < bArray.length; j++)
{ // LOOP THROUGH THE OLD ARRAY
if (colArray[i] == bArray[j])
{ // WHEN THE ITEM IN THE OLD AND NEW MATCH, PLACE THE
// CURRENT ROW NUMBER IN THE PROPER POSITION IN THE
// NEW ORDER ARRAY SO ROWS CAN BE MOVED ....
// MAKE SURE CURRENT ROW NUMBER IS NOT ALREADY IN THE
// NEW ORDER ARRAY
for (c=0; c<i; c++)
{
if ( oldIndex[c] == (j+1) )
{
bSort = 1;
}
}
if (bSort == 0)
{
oldIndex[i] = (j+1);
}
bSort = 0;
}
}
}
// ** SORTING COMPLETE, ADD NEW ROWS TO BASE OF table ....
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;
}
}
//MOVE NEW ROWS TO TOP OF table ....
for (i=1; i<totalRows; i++)
{
tableToSort.moveRow((tableToSort.rows.length -1),1);
}
//DELETE THE OLD ROWS FROM THE BOTTOM OF THE table ....
for (i=1; i<totalRows; i++)
{
tableToSort.deleteRow();
}
}
// End -->
HTML:
<table width="75%" border=1 cellspacing="1" cellpadding="1" name="rstable" id=rstable cols=5>
<tr bgcolor=mediumblue>
<td><a href="javascript:sorttable(0, rstable);"><font color=white><b>ID</b></font></a></td>
<td><a href="javascript:sorttable(1, rstable);"><font color=white><b>NAME</b></font></a></td>
<td><a href="javascript:sorttable(2, rstable);"><font color=white><b>DATE</b></font></a></td>
<td><a href="javascript:sorttable(3, rstable);"><font color=white><b>PHONE</b></font></a></td>
<td><a href="javascript:sorttable(4, rstable);"><font color=white><b>WORKFLOW</b></font></a></td>
</tr></font>
<tr>
<td>1</td> <td>Andy Berry</td> <td>4/9/72</td> <td>763-555-1212</td> <td>REVIEW</td>
</tr>
<tr>
<td>2</td> <td>Dan Developer</td> <td>9/3/63</td> <td>215-555-1400</td> <td>SAME</td>
</tr>
<tr>
<td>3</td> <td>John Javascript</td> <td>3/4/71</td> <td>612-555-0987</td> <td>REVIEW</td>
</tr>
<tr>
<td>4</td> <td>Jerry JSPage</td> <td>8/2/71</td> <td>215-555-7654</td> <td>SAME</td>
</tr>
<tr>
<td>5</td> <td>Mary Mainframe</td> <td>3/28/70</td> <td>763-555-8295</td> <td>REVIEW</td>
</tr>
<tr>
<td>6</td> <td>Elaine Ecommerce</td> <td>2/28/29</td> <td>612-555-1338</td> <td>REVIEW</td>
</tr>
<tr>
<td>7</td> <td>John Smith</td> <td>12/31/00</td> <td>610-555-0987</td> <td>SAME</td>
</tr>
<tr>
<td>8</td> <td>Candy Coder</td> <td>4/1/70</td> <td>000-555-9099</td> <td>SAME</td>
</tr>
<tr>
<td>9</td> <td>Pippy Long Stocking</td> <td>1/1/30</td> <td>613-555-1338</td> <td>DIFFERENT</td>
</tr>
<tr>
<td>10</td> <td>111222</td> <td>2/2/01</td> <td>345-555-7654</td> <td>DIFFERENT</td>
</tr>
<tr>
<td>11</td> <td>Apple Man</td> <td>3/13/74</td> <td>215-555-4043</td> <td>DIFFERENT</td>
</tr>
</table>
<!-- Begin Demo: Sorting data from table
function setdataType(cValue)
{
// THIS FUNCTION CONVERTS DATES AND NUMBERS FOR PROPER ARRAY
// SORTING WHEN IN THE SORT FUNCTION
var isDate = new Date(cValue);
if (isDate == "NaN")
{
if (isNaN(cValue))
{
// THE VALUE IS A StrING, MAKE ALL CHARACTERS IN
// StrING UPPER CASE TO ASSURE PROPER A-Z SORT
cValue = cValue.toUpperCase();
return cValue;
}
else
{
// VALUE IS A NUMBER, TO PREVENT StrING SORTING OF A NUMBER
// ADD AN ADDITIONAL DIGIT THAT IS THE + TO THE LENGTH OF
// THE NUMBER WHEN IT IS A StrING
var myNum;
myNum = String.fromCharCode(48 + cValue.length) + cValue;
return myNum;
}
}
else
{
// VALUE TO SORT IS A DATE, REMOVE ALL OF THE PUNCTUATION AND
// AND RETURN THE StrING NUMBER
//BUG - StrING AND NOT NUMERICAL SORT .....
// ( 1 - 10 - 11 - 2 - 3 - 4 - 41 - 5 etc.)
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();
//myDate = String.fromCharCode(48 + myDate.length) + myDate;
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;
// ** POPULATE THE ARRAY colArray WITH CONTENTS OF THE COLUMN SELECTED
for (i=1; i < tableToSort.rows.length; i++)
{
colArray[i - 1] = setdataType(tableToSort.cells(iCurCell).innerText);
iCurCell = iCurCell + tableToSort.cols;
}
// ** COPY ARRAY FOR COMPARISON AFTER SORT
for (i=0; i < colArray.length; i++)
{
bArray[i] = colArray[i];
}
// ** SORT THE COLUMN ITEMS
//alert ( colArray );
colArray.sort();
//alert ( colArray );
for (i=0; i < colArray.length; i++)
{ // LOOP THROUGH THE NEW SORTED ARRAY
indexArray[i] = (i+1);
for(j=0; j < bArray.length; j++)
{ // LOOP THROUGH THE OLD ARRAY
if (colArray[i] == bArray[j])
{ // WHEN THE ITEM IN THE OLD AND NEW MATCH, PLACE THE
// CURRENT ROW NUMBER IN THE PROPER POSITION IN THE
// NEW ORDER ARRAY SO ROWS CAN BE MOVED ....
// MAKE SURE CURRENT ROW NUMBER IS NOT ALREADY IN THE
// NEW ORDER ARRAY
for (c=0; c<i; c++)
{
if ( oldIndex[c] == (j+1) )
{
bSort = 1;
}
}
if (bSort == 0)
{
oldIndex[i] = (j+1);
}
bSort = 0;
}
}
}
// ** SORTING COMPLETE, ADD NEW ROWS TO BASE OF table ....
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;
}
}
//MOVE NEW ROWS TO TOP OF table ....
for (i=1; i<totalRows; i++)
{
tableToSort.moveRow((tableToSort.rows.length -1),1);
}
//DELETE THE OLD ROWS FROM THE BOTTOM OF THE table ....
for (i=1; i<totalRows; i++)
{
tableToSort.deleteRow();
}
}
// End -->
HTML:
<table width="75%" border=1 cellspacing="1" cellpadding="1" name="rstable" id=rstable cols=5>
<tr bgcolor=mediumblue>
<td><a href="javascript:sorttable(0, rstable);"><font color=white><b>ID</b></font></a></td>
<td><a href="javascript:sorttable(1, rstable);"><font color=white><b>NAME</b></font></a></td>
<td><a href="javascript:sorttable(2, rstable);"><font color=white><b>DATE</b></font></a></td>
<td><a href="javascript:sorttable(3, rstable);"><font color=white><b>PHONE</b></font></a></td>
<td><a href="javascript:sorttable(4, rstable);"><font color=white><b>WORKFLOW</b></font></a></td>
</tr></font>
<tr>
<td>1</td> <td>Andy Berry</td> <td>4/9/72</td> <td>763-555-1212</td> <td>REVIEW</td>
</tr>
<tr>
<td>2</td> <td>Dan Developer</td> <td>9/3/63</td> <td>215-555-1400</td> <td>SAME</td>
</tr>
<tr>
<td>3</td> <td>John Javascript</td> <td>3/4/71</td> <td>612-555-0987</td> <td>REVIEW</td>
</tr>
<tr>
<td>4</td> <td>Jerry JSPage</td> <td>8/2/71</td> <td>215-555-7654</td> <td>SAME</td>
</tr>
<tr>
<td>5</td> <td>Mary Mainframe</td> <td>3/28/70</td> <td>763-555-8295</td> <td>REVIEW</td>
</tr>
<tr>
<td>6</td> <td>Elaine Ecommerce</td> <td>2/28/29</td> <td>612-555-1338</td> <td>REVIEW</td>
</tr>
<tr>
<td>7</td> <td>John Smith</td> <td>12/31/00</td> <td>610-555-0987</td> <td>SAME</td>
</tr>
<tr>
<td>8</td> <td>Candy Coder</td> <td>4/1/70</td> <td>000-555-9099</td> <td>SAME</td>
</tr>
<tr>
<td>9</td> <td>Pippy Long Stocking</td> <td>1/1/30</td> <td>613-555-1338</td> <td>DIFFERENT</td>
</tr>
<tr>
<td>10</td> <td>111222</td> <td>2/2/01</td> <td>345-555-7654</td> <td>DIFFERENT</td>
</tr>
<tr>
<td>11</td> <td>Apple Man</td> <td>3/13/74</td> <td>215-555-4043</td> <td>DIFFERENT</td>
</tr>
</table>
- JavaScript:
- <!-- Begin Demo: Sorting data from table
- function setdataType(cValue)
- {
- // THIS FUNCTION CONVERTS DATES AND NUMBERS FOR PROPER ARRAY
- // SORTING WHEN IN THE SORT FUNCTION
- var isDate = new Date(cValue);
- if (isDate == "NaN")
- {
- if (isNaN(cValue))
- {
- // THE VALUE IS A StrING, MAKE ALL CHARACTERS IN
- // StrING UPPER CASE TO ASSURE PROPER A-Z SORT
- cValue = cValue.toUpperCase();
- return cValue;
- }
- else
- {
- // VALUE IS A NUMBER, TO PREVENT StrING SORTING OF A NUMBER
- // ADD AN ADDITIONAL DIGIT THAT IS THE + TO THE LENGTH OF
- // THE NUMBER WHEN IT IS A StrING
- var myNum;
- myNum = String.fromCharCode(48 + cValue.length) + cValue;
- return myNum;
- }
- }
- else
- {
- // VALUE TO SORT IS A DATE, REMOVE ALL OF THE PUNCTUATION AND
- // AND RETURN THE StrING NUMBER
- //BUG - StrING AND NOT NUMERICAL SORT .....
- // ( 1 - 10 - 11 - 2 - 3 - 4 - 41 - 5 etc.)
- 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();
- //myDate = String.fromCharCode(48 + myDate.length) + myDate;
- 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;
- // ** POPULATE THE ARRAY colArray WITH CONTENTS OF THE COLUMN SELECTED
- for (i=1; i < tableToSort.rows.length; i++)
- {
- colArray[i - 1] = setdataType(tableToSort.cells(iCurCell).innerText);
- iCurCell = iCurCell + tableToSort.cols;
- }
- // ** COPY ARRAY FOR COMPARISON AFTER SORT
- for (i=0; i < colArray.length; i++)
- {
- bArray[i] = colArray[i];
- }
- // ** SORT THE COLUMN ITEMS
- //alert ( colArray );
- colArray.sort();
- //alert ( colArray );
- for (i=0; i < colArray.length; i++)
- { // LOOP THROUGH THE NEW SORTED ARRAY
- indexArray[i] = (i+1);
- for(j=0; j < bArray.length; j++)
- { // LOOP THROUGH THE OLD ARRAY
- if (colArray[i] == bArray[j])
- { // WHEN THE ITEM IN THE OLD AND NEW MATCH, PLACE THE
- // CURRENT ROW NUMBER IN THE PROPER POSITION IN THE
- // NEW ORDER ARRAY SO ROWS CAN BE MOVED ....
- // MAKE SURE CURRENT ROW NUMBER IS NOT ALREADY IN THE
- // NEW ORDER ARRAY
- for (c=0; c<i; c++)
- {
- if ( oldIndex[c] == (j+1) )
- {
- bSort = 1;
- }
- }
- if (bSort == 0)
- {
- oldIndex[i] = (j+1);
- }
- bSort = 0;
- }
- }
- }
- // ** SORTING COMPLETE, ADD NEW ROWS TO BASE OF table ....
- 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;
- }
- }
- //MOVE NEW ROWS TO TOP OF table ....
- for (i=1; i<totalRows; i++)
- {
- tableToSort.moveRow((tableToSort.rows.length -1),1);
- }
- //DELETE THE OLD ROWS FROM THE BOTTOM OF THE table ....
- for (i=1; i<totalRows; i++)
- {
- tableToSort.deleteRow();
- }
- }
- // End -->
- HTML:
- <table width="75%" border=1 cellspacing="1" cellpadding="1" name="rstable" id=rstable cols=5>
- <tr bgcolor=mediumblue>
- <td><a href="javascript:sorttable(0, rstable);"><font color=white><b>ID</b></font></a></td>
- <td><a href="javascript:sorttable(1, rstable);"><font color=white><b>NAME</b></font></a></td>
- <td><a href="javascript:sorttable(2, rstable);"><font color=white><b>DATE</b></font></a></td>
- <td><a href="javascript:sorttable(3, rstable);"><font color=white><b>PHONE</b></font></a></td>
- <td><a href="javascript:sorttable(4, rstable);"><font color=white><b>WORKFLOW</b></font></a></td>
- </tr></font>
- <tr>
- <td>1</td> <td>Andy Berry</td> <td>4/9/72</td> <td>763-555-1212</td> <td>REVIEW</td>
- </tr>
- <tr>
- <td>2</td> <td>Dan Developer</td> <td>9/3/63</td> <td>215-555-1400</td> <td>SAME</td>
- </tr>
- <tr>
- <td>3</td> <td>John Javascript</td> <td>3/4/71</td> <td>612-555-0987</td> <td>REVIEW</td>
- </tr>
- <tr>
- <td>4</td> <td>Jerry JSPage</td> <td>8/2/71</td> <td>215-555-7654</td> <td>SAME</td>
- </tr>
- <tr>
- <td>5</td> <td>Mary Mainframe</td> <td>3/28/70</td> <td>763-555-8295</td> <td>REVIEW</td>
- </tr>
- <tr>
- <td>6</td> <td>Elaine Ecommerce</td> <td>2/28/29</td> <td>612-555-1338</td> <td>REVIEW</td>
- </tr>
- <tr>
- <td>7</td> <td>John Smith</td> <td>12/31/00</td> <td>610-555-0987</td> <td>SAME</td>
- </tr>
- <tr>
- <td>8</td> <td>Candy Coder</td> <td>4/1/70</td> <td>000-555-9099</td> <td>SAME</td>
- </tr>
- <tr>
- <td>9</td> <td>Pippy Long Stocking</td> <td>1/1/30</td> <td>613-555-1338</td> <td>DIFFERENT</td>
- </tr>
- <tr>
- <td>10</td> <td>111222</td> <td>2/2/01</td> <td>345-555-7654</td> <td>DIFFERENT</td>
- </tr>
- <tr>
- <td>11</td> <td>Apple Man</td> <td>3/13/74</td> <td>215-555-4043</td> <td>DIFFERENT</td>
- </tr>
- </table>
- Anonymous
- Bot


- Joined: 25 Feb 2008
- Posts: ?
- Loc: Ozzuland
- Status: Online
July 28th, 2003, 7:59 pm
- ATNO/TW
- Super Moderator


- Joined: May 28, 2003
- Posts: 23407
- Loc: Woodbridge VA
- Status: Offline
Where did you place the JavaScript? Within the "head" tags?
Second question would be, did you add the "onLoad" to the body tags?
Second question would be, did you add the "onLoad" to the body tags?
"There's no place like 127.0.0.1 except for ::1."
Alexandria Networks. Leader in IT consulting for associations/non-profits, and small to medium sized businesses around the northern Virginia and Washington D.C. metro area.
Alexandria Networks. Leader in IT consulting for associations/non-profits, and small to medium sized businesses around the northern Virginia and Washington D.C. metro area.
- vickriz
- Novice


- Joined: Jul 28, 2003
- Posts: 31
- Loc: Phlippines
- Status: Offline
ATNO/TW wrote:
Where did you place the JavaScript? Within the "head" tags?
Second question would be, did you add the "onLoad" to the body tags?
Second question would be, did you add the "onLoad" to the body tags?
i put the javascript within the head tags..
forgive me for being naive. but i dont know what/which function to put inside the <body onload="?">..
can you please help me out? please please please
- ATNO/TW
- Super Moderator


- Joined: May 28, 2003
- Posts: 23407
- Loc: Woodbridge VA
- Status: Offline
but if I'm reading correctly I think it should be : onload="setdataType();"
Someone correct me if I'm wrong.. it's a little late here on my end.
If all else fails and no one else answers, check the source code for the script that works. Review the body tag and that "should" give you your exact answer.
Someone correct me if I'm wrong.. it's a little late here on my end.
If all else fails and no one else answers, check the source code for the script that works. Review the body tag and that "should" give you your exact answer.
"There's no place like 127.0.0.1 except for ::1."
Alexandria Networks. Leader in IT consulting for associations/non-profits, and small to medium sized businesses around the northern Virginia and Washington D.C. metro area.
Alexandria Networks. Leader in IT consulting for associations/non-profits, and small to medium sized businesses around the northern Virginia and Washington D.C. metro area.
- vickriz
- Novice


- Joined: Jul 28, 2003
- Posts: 31
- Loc: Phlippines
- Status: Offline
ATNO/TW wrote:
but if I'm reading correctly I think it should be : onload="setdataType();"
Someone correct me if I'm wrong.. it's a little late here on my end.
If all else fails and no one else answers, check the source code for the script that works. Review the body tag and that "should" give you your exact answer.
Someone correct me if I'm wrong.. it's a little late here on my end.
If all else fails and no one else answers, check the source code for the script that works. Review the body tag and that "should" give you your exact answer.
i put the script inside head tags and put the onload on body tag like you suggest.
still occuring the same error at window.status. "Error on page"
- Bigwebmaster
- Site Admin


- Joined: Dec 20, 2002
- Posts: 8934
- Loc: Seattle, WA & Phoenix, AZ
- Status: Offline
Are there instructions to follow that explains exactly what steps you need to take in order to use it? It seems like you might be missing something.
Before you did what ATNO/TW suggested, what errors were you receiving? I am not sure what ATNO/TW suggested would work because the function setdataType() is expecting an argument.
Before you did what ATNO/TW suggested, what errors were you receiving? I am not sure what ATNO/TW suggested would work because the function setdataType() is expecting an argument.
Ozzu Hosting - Want your website on a fast server like Ozzu?
- vickriz
- Novice


- Joined: Jul 28, 2003
- Posts: 31
- Loc: Phlippines
- Status: Offline
Bigwebmaster wrote:
Are there instructions to follow that explains exactly what steps you need to take in order to use it? It seems like you might be missing something.
Before you did what ATNO/TW suggested, what errors were you receiving? I am not sure what ATNO/TW suggested would work because the function setdataType() is expecting an argument.
Before you did what ATNO/TW suggested, what errors were you receiving? I am not sure what ATNO/TW suggested would work because the function setdataType() is expecting an argument.
the only error i received was "Error on page" [with the icon of exclamation on top of paper] at my window.status which occur when i click on header of the table.
can you help me out with this?? please
- Bigwebmaster
- Site Admin


- Joined: Dec 20, 2002
- Posts: 8934
- Loc: Seattle, WA & Phoenix, AZ
- Status: Offline
Where does it say "Error on Page"? Does it say it in the bottom part of the browser status area? If it does double click on it to get more specifics.
Ozzu Hosting - Want your website on a fast server like Ozzu?
- RichB
- Guru


- Joined: May 17, 2003
- Posts: 1121
- Loc: Boston
- Status: Offline
I'm getting "object doesn't support this property or method" in both of the functions depending on which header row I click when I use the first example posted, so I think that the code was probably accidentally corrupted when cutting and pasting originally. I couldn't see the difference when I tried to compare it to the original script at The Javascript Source, but it's a relatively complicated script, so I would just recommend starting over by copying it again. I was able to get the original script working after copying and pasting it from The Javascript Source. Here is the file that I used if you just want to copy that:
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->
<!-- Begin
function setDataType(cValue)
{
// THIS FUNCTION CONVERTS DATES AND NUMBERS FOR PROPER ARRAY
// SORTING WHEN IN THE SORT FUNCTION
var isDate = new Date(cValue);
if (isDate == "NaN")
{
if (isNaN(cValue))
{
// THE VALUE IS A STRING, MAKE ALL CHARACTERS IN
// STRING UPPER CASE TO ASSURE PROPER A-Z SORT
cValue = cValue.toUpperCase();
return cValue;
}
else
{
// VALUE IS A NUMBER, TO PREVENT STRING SORTING OF A NUMBER
// ADD AN ADDITIONAL DIGIT THAT IS THE + TO THE LENGTH OF
// THE NUMBER WHEN IT IS A STRING
var myNum;
myNum = String.fromCharCode(48 + cValue.length) + cValue;
return myNum;
}
}
else
{
// VALUE TO SORT IS A DATE, REMOVE ALL OF THE PUNCTUATION AND
// AND RETURN THE STRING NUMBER
//BUG - STRING AND NOT NUMERICAL SORT .....
// ( 1 - 10 - 11 - 2 - 3 - 4 - 41 - 5 etc.)
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();
//myDate = String.fromCharCode(48 + myDate.length) + myDate;
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;
// ** POPULATE THE ARRAY colArray WITH CONTENTS OF THE COLUMN SELECTED
for (i=1; i < tableToSort.rows.length; i++)
{
colArray[i - 1] = setDataType(tableToSort.cells(iCurCell).innerText);
iCurCell = iCurCell + tableToSort.cols;
}
// ** COPY ARRAY FOR COMPARISON AFTER SORT
for (i=0; i < colArray.length; i++)
{
bArray[i] = colArray[i];
}
// ** SORT THE COLUMN ITEMS
//alert ( colArray );
colArray.sort();
//alert ( colArray );
for (i=0; i < colArray.length; i++)
{ // LOOP THROUGH THE NEW SORTED ARRAY
indexArray[i] = (i+1);
for(j=0; j < bArray.length; j++)
{ // LOOP THROUGH THE OLD ARRAY
if (colArray[i] == bArray[j])
{ // WHEN THE ITEM IN THE OLD AND NEW MATCH, PLACE THE
// CURRENT ROW NUMBER IN THE PROPER POSITION IN THE
// NEW ORDER ARRAY SO ROWS CAN BE MOVED ....
// MAKE SURE CURRENT ROW NUMBER IS NOT ALREADY IN THE
// NEW ORDER ARRAY
for (c=0; c<i; c++)
{
if ( oldIndex[c] == (j+1) )
{
bSort = 1;
}
}
if (bSort == 0)
{
oldIndex[i] = (j+1);
}
bSort = 0;
}
}
}
// ** SORTING COMPLETE, ADD NEW ROWS TO BASE OF TABLE ....
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;
}
}
//MOVE NEW ROWS TO TOP OF TABLE ....
for (i=1; i<totalRows; i++)
{
tableToSort.moveRow((tableToSort.rows.length -1),1);
}
//DELETE THE OLD ROWS FROM THE BOTTOM OF THE TABLE ....
for (i=1; i<totalRows; i++)
{
tableToSort.deleteRow();
}
}
// End -->
</script>
</HEAD>
<!-- STEP TWO: Copy this code into the BODY of your HTML document -->
<BODY>
<TABLE WIDTH="75%" BORDER=1 CELLSPACING=1 CELLPADDING=1 name="rsTable" id=rsTable cols=5>
<TR bgcolor=mediumblue>
<TD><A href="javascript:sortTable(0, rsTable);"><FONT color=white><B>ID</FONT></B></A></TD>
<TD><A href="javascript:sortTable(1, rsTable);"><FONT color=white><B>NAME</FONT></B></A></TD>
<TD><A href="javascript:sortTable(2, rsTable);"><FONT color=white><B>DATE</FONT></B></A></TD>
<TD><A href="javascript:sortTable(3, rsTable);"><FONT color=white><B>PHONE</FONT></B></A></TD>
<TD><A href="javascript:sortTable(4, rsTable);"><FONT color=white><B>WORKFLOW</FONT></B></A></TD>
</TR></FONT>
<TR>
<TD>1</TD>
<TD>Andy Berry</TD>
<TD>4/9/72</TD>
<TD>763-555-1212</TD>
<TD>REVIEW</TD>
</TR>
<TR>
<TD>2</TD>
<TD>Dan Developer</TD>
<TD>9/3/63</TD>
<TD>215-555-1400</TD>
<TD>SAME</TD>
</TR>
<TR>
<TD>3</TD>
<TD>John Javascript</TD>
<TD>3/4/71</TD>
<TD>612-555-0987</TD>
<TD>REVIEW</TD>
</TR>
<TR>
<TD>4</TD>
<TD>Jerry JSPage</TD>
<TD>8/2/71</TD>
<TD>215-555-7654</TD>
<TD>SAME</TD>
</TR>
<TR>
<TD>5</TD>
<TD>Mary Mainframe</TD>
<TD>3/28/70</TD>
<TD>763-555-8295</TD>
<TD>REVIEW</TD>
</TR>
<TR>
<TD>6</TD>
<TD>Elaine Ecommerce</TD>
<TD>2/28/29</TD>
<TD>612-555-1338</TD>
<TD>REVIEW</TD>
</TR>
<TR>
<TD>7</TD>
<TD>John Smith</TD>
<TD>12/31/00</TD>
<TD>610-555-0987</TD>
<TD>SAME</TD>
</TR>
<TR>
<TD>8</TD>
<TD>Candy Coder</TD>
<TD>4/1/70</TD>
<TD>000-555-9099</TD>
<TD>SAME</TD>
</TR>
<TR>
<TD>9</TD>
<TD>Pippy Long Stocking</TD>
<TD>1/1/30</TD>
<TD>613-555-1338</TD>
<TD>DIFFERENT</TD>
</TR>
<TR>
<TD>10</TD>
<TD>111222</TD>
<TD>2/2/01</TD>
<TD>345-555-7654</TD>
<TD>DIFFERENT</TD>
</TR>
<TR>
<TD>11</TD>
<TD>Apple Man</TD>
<TD>3/13/74</TD>
<TD>215-555-4043</TD>
<TD>DIFFERENT</TD>
</TR>
</TABLE>
<p><center>
<font face="arial, helvetica" size"-2">Free JavaScripts provided<br>
by <a href="http://javascriptsource.com">The JavaScript Source</a></font>
</center><p>
<!-- Script Size: 7.51 KB -->
Code: [ Select ]
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->
<!-- Begin
function setDataType(cValue)
{
// THIS FUNCTION CONVERTS DATES AND NUMBERS FOR PROPER ARRAY
// SORTING WHEN IN THE SORT FUNCTION
var isDate = new Date(cValue);
if (isDate == "NaN")
{
if (isNaN(cValue))
{
// THE VALUE IS A STRING, MAKE ALL CHARACTERS IN
// STRING UPPER CASE TO ASSURE PROPER A-Z SORT
cValue = cValue.toUpperCase();
return cValue;
}
else
{
// VALUE IS A NUMBER, TO PREVENT STRING SORTING OF A NUMBER
// ADD AN ADDITIONAL DIGIT THAT IS THE + TO THE LENGTH OF
// THE NUMBER WHEN IT IS A STRING
var myNum;
myNum = String.fromCharCode(48 + cValue.length) + cValue;
return myNum;
}
}
else
{
// VALUE TO SORT IS A DATE, REMOVE ALL OF THE PUNCTUATION AND
// AND RETURN THE STRING NUMBER
//BUG - STRING AND NOT NUMERICAL SORT .....
// ( 1 - 10 - 11 - 2 - 3 - 4 - 41 - 5 etc.)
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();
//myDate = String.fromCharCode(48 + myDate.length) + myDate;
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;
// ** POPULATE THE ARRAY colArray WITH CONTENTS OF THE COLUMN SELECTED
for (i=1; i < tableToSort.rows.length; i++)
{
colArray[i - 1] = setDataType(tableToSort.cells(iCurCell).innerText);
iCurCell = iCurCell + tableToSort.cols;
}
// ** COPY ARRAY FOR COMPARISON AFTER SORT
for (i=0; i < colArray.length; i++)
{
bArray[i] = colArray[i];
}
// ** SORT THE COLUMN ITEMS
//alert ( colArray );
colArray.sort();
//alert ( colArray );
for (i=0; i < colArray.length; i++)
{ // LOOP THROUGH THE NEW SORTED ARRAY
indexArray[i] = (i+1);
for(j=0; j < bArray.length; j++)
{ // LOOP THROUGH THE OLD ARRAY
if (colArray[i] == bArray[j])
{ // WHEN THE ITEM IN THE OLD AND NEW MATCH, PLACE THE
// CURRENT ROW NUMBER IN THE PROPER POSITION IN THE
// NEW ORDER ARRAY SO ROWS CAN BE MOVED ....
// MAKE SURE CURRENT ROW NUMBER IS NOT ALREADY IN THE
// NEW ORDER ARRAY
for (c=0; c<i; c++)
{
if ( oldIndex[c] == (j+1) )
{
bSort = 1;
}
}
if (bSort == 0)
{
oldIndex[i] = (j+1);
}
bSort = 0;
}
}
}
// ** SORTING COMPLETE, ADD NEW ROWS TO BASE OF TABLE ....
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;
}
}
//MOVE NEW ROWS TO TOP OF TABLE ....
for (i=1; i<totalRows; i++)
{
tableToSort.moveRow((tableToSort.rows.length -1),1);
}
//DELETE THE OLD ROWS FROM THE BOTTOM OF THE TABLE ....
for (i=1; i<totalRows; i++)
{
tableToSort.deleteRow();
}
}
// End -->
</script>
</HEAD>
<!-- STEP TWO: Copy this code into the BODY of your HTML document -->
<BODY>
<TABLE WIDTH="75%" BORDER=1 CELLSPACING=1 CELLPADDING=1 name="rsTable" id=rsTable cols=5>
<TR bgcolor=mediumblue>
<TD><A href="javascript:sortTable(0, rsTable);"><FONT color=white><B>ID</FONT></B></A></TD>
<TD><A href="javascript:sortTable(1, rsTable);"><FONT color=white><B>NAME</FONT></B></A></TD>
<TD><A href="javascript:sortTable(2, rsTable);"><FONT color=white><B>DATE</FONT></B></A></TD>
<TD><A href="javascript:sortTable(3, rsTable);"><FONT color=white><B>PHONE</FONT></B></A></TD>
<TD><A href="javascript:sortTable(4, rsTable);"><FONT color=white><B>WORKFLOW</FONT></B></A></TD>
</TR></FONT>
<TR>
<TD>1</TD>
<TD>Andy Berry</TD>
<TD>4/9/72</TD>
<TD>763-555-1212</TD>
<TD>REVIEW</TD>
</TR>
<TR>
<TD>2</TD>
<TD>Dan Developer</TD>
<TD>9/3/63</TD>
<TD>215-555-1400</TD>
<TD>SAME</TD>
</TR>
<TR>
<TD>3</TD>
<TD>John Javascript</TD>
<TD>3/4/71</TD>
<TD>612-555-0987</TD>
<TD>REVIEW</TD>
</TR>
<TR>
<TD>4</TD>
<TD>Jerry JSPage</TD>
<TD>8/2/71</TD>
<TD>215-555-7654</TD>
<TD>SAME</TD>
</TR>
<TR>
<TD>5</TD>
<TD>Mary Mainframe</TD>
<TD>3/28/70</TD>
<TD>763-555-8295</TD>
<TD>REVIEW</TD>
</TR>
<TR>
<TD>6</TD>
<TD>Elaine Ecommerce</TD>
<TD>2/28/29</TD>
<TD>612-555-1338</TD>
<TD>REVIEW</TD>
</TR>
<TR>
<TD>7</TD>
<TD>John Smith</TD>
<TD>12/31/00</TD>
<TD>610-555-0987</TD>
<TD>SAME</TD>
</TR>
<TR>
<TD>8</TD>
<TD>Candy Coder</TD>
<TD>4/1/70</TD>
<TD>000-555-9099</TD>
<TD>SAME</TD>
</TR>
<TR>
<TD>9</TD>
<TD>Pippy Long Stocking</TD>
<TD>1/1/30</TD>
<TD>613-555-1338</TD>
<TD>DIFFERENT</TD>
</TR>
<TR>
<TD>10</TD>
<TD>111222</TD>
<TD>2/2/01</TD>
<TD>345-555-7654</TD>
<TD>DIFFERENT</TD>
</TR>
<TR>
<TD>11</TD>
<TD>Apple Man</TD>
<TD>3/13/74</TD>
<TD>215-555-4043</TD>
<TD>DIFFERENT</TD>
</TR>
</TABLE>
<p><center>
<font face="arial, helvetica" size"-2">Free JavaScripts provided<br>
by <a href="http://javascriptsource.com">The JavaScript Source</a></font>
</center><p>
<!-- Script Size: 7.51 KB -->
- <HEAD>
- <SCRIPT LANGUAGE="JavaScript">
- <!-- This script and many more are available free online at -->
- <!-- The JavaScript Source!! http://javascript.internet.com -->
- <!-- Begin
- function setDataType(cValue)
- {
- // THIS FUNCTION CONVERTS DATES AND NUMBERS FOR PROPER ARRAY
- // SORTING WHEN IN THE SORT FUNCTION
- var isDate = new Date(cValue);
- if (isDate == "NaN")
- {
- if (isNaN(cValue))
- {
- // THE VALUE IS A STRING, MAKE ALL CHARACTERS IN
- // STRING UPPER CASE TO ASSURE PROPER A-Z SORT
- cValue = cValue.toUpperCase();
- return cValue;
- }
- else
- {
- // VALUE IS A NUMBER, TO PREVENT STRING SORTING OF A NUMBER
- // ADD AN ADDITIONAL DIGIT THAT IS THE + TO THE LENGTH OF
- // THE NUMBER WHEN IT IS A STRING
- var myNum;
- myNum = String.fromCharCode(48 + cValue.length) + cValue;
- return myNum;
- }
- }
- else
- {
- // VALUE TO SORT IS A DATE, REMOVE ALL OF THE PUNCTUATION AND
- // AND RETURN THE STRING NUMBER
- //BUG - STRING AND NOT NUMERICAL SORT .....
- // ( 1 - 10 - 11 - 2 - 3 - 4 - 41 - 5 etc.)
- 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();
- //myDate = String.fromCharCode(48 + myDate.length) + myDate;
- 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;
- // ** POPULATE THE ARRAY colArray WITH CONTENTS OF THE COLUMN SELECTED
- for (i=1; i < tableToSort.rows.length; i++)
- {
- colArray[i - 1] = setDataType(tableToSort.cells(iCurCell).innerText);
- iCurCell = iCurCell + tableToSort.cols;
- }
- // ** COPY ARRAY FOR COMPARISON AFTER SORT
- for (i=0; i < colArray.length; i++)
- {
- bArray[i] = colArray[i];
- }
- // ** SORT THE COLUMN ITEMS
- //alert ( colArray );
- colArray.sort();
- //alert ( colArray );
- for (i=0; i < colArray.length; i++)
- { // LOOP THROUGH THE NEW SORTED ARRAY
- indexArray[i] = (i+1);
- for(j=0; j < bArray.length; j++)
- { // LOOP THROUGH THE OLD ARRAY
- if (colArray[i] == bArray[j])
- { // WHEN THE ITEM IN THE OLD AND NEW MATCH, PLACE THE
- // CURRENT ROW NUMBER IN THE PROPER POSITION IN THE
- // NEW ORDER ARRAY SO ROWS CAN BE MOVED ....
- // MAKE SURE CURRENT ROW NUMBER IS NOT ALREADY IN THE
- // NEW ORDER ARRAY
- for (c=0; c<i; c++)
- {
- if ( oldIndex[c] == (j+1) )
- {
- bSort = 1;
- }
- }
- if (bSort == 0)
- {
- oldIndex[i] = (j+1);
- }
- bSort = 0;
- }
- }
- }
- // ** SORTING COMPLETE, ADD NEW ROWS TO BASE OF TABLE ....
- 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;
- }
- }
- //MOVE NEW ROWS TO TOP OF TABLE ....
- for (i=1; i<totalRows; i++)
- {
- tableToSort.moveRow((tableToSort.rows.length -1),1);
- }
- //DELETE THE OLD ROWS FROM THE BOTTOM OF THE TABLE ....
- for (i=1; i<totalRows; i++)
- {
- tableToSort.deleteRow();
- }
- }
- // End -->
- </script>
- </HEAD>
- <!-- STEP TWO: Copy this code into the BODY of your HTML document -->
- <BODY>
- <TABLE WIDTH="75%" BORDER=1 CELLSPACING=1 CELLPADDING=1 name="rsTable" id=rsTable cols=5>
- <TR bgcolor=mediumblue>
- <TD><A href="javascript:sortTable(0, rsTable);"><FONT color=white><B>ID</FONT></B></A></TD>
- <TD><A href="javascript:sortTable(1, rsTable);"><FONT color=white><B>NAME</FONT></B></A></TD>
- <TD><A href="javascript:sortTable(2, rsTable);"><FONT color=white><B>DATE</FONT></B></A></TD>
- <TD><A href="javascript:sortTable(3, rsTable);"><FONT color=white><B>PHONE</FONT></B></A></TD>
- <TD><A href="javascript:sortTable(4, rsTable);"><FONT color=white><B>WORKFLOW</FONT></B></A></TD>
- </TR></FONT>
- <TR>
- <TD>1</TD>
- <TD>Andy Berry</TD>
- <TD>4/9/72</TD>
- <TD>763-555-1212</TD>
- <TD>REVIEW</TD>
- </TR>
- <TR>
- <TD>2</TD>
- <TD>Dan Developer</TD>
- <TD>9/3/63</TD>
- <TD>215-555-1400</TD>
- <TD>SAME</TD>
- </TR>
- <TR>
- <TD>3</TD>
- <TD>John Javascript</TD>
- <TD>3/4/71</TD>
- <TD>612-555-0987</TD>
- <TD>REVIEW</TD>
- </TR>
- <TR>
- <TD>4</TD>
- <TD>Jerry JSPage</TD>
- <TD>8/2/71</TD>
- <TD>215-555-7654</TD>
- <TD>SAME</TD>
- </TR>
- <TR>
- <TD>5</TD>
- <TD>Mary Mainframe</TD>
- <TD>3/28/70</TD>
- <TD>763-555-8295</TD>
- <TD>REVIEW</TD>
- </TR>
- <TR>
- <TD>6</TD>
- <TD>Elaine Ecommerce</TD>
- <TD>2/28/29</TD>
- <TD>612-555-1338</TD>
- <TD>REVIEW</TD>
- </TR>
- <TR>
- <TD>7</TD>
- <TD>John Smith</TD>
- <TD>12/31/00</TD>
- <TD>610-555-0987</TD>
- <TD>SAME</TD>
- </TR>
- <TR>
- <TD>8</TD>
- <TD>Candy Coder</TD>
- <TD>4/1/70</TD>
- <TD>000-555-9099</TD>
- <TD>SAME</TD>
- </TR>
- <TR>
- <TD>9</TD>
- <TD>Pippy Long Stocking</TD>
- <TD>1/1/30</TD>
- <TD>613-555-1338</TD>
- <TD>DIFFERENT</TD>
- </TR>
- <TR>
- <TD>10</TD>
- <TD>111222</TD>
- <TD>2/2/01</TD>
- <TD>345-555-7654</TD>
- <TD>DIFFERENT</TD>
- </TR>
- <TR>
- <TD>11</TD>
- <TD>Apple Man</TD>
- <TD>3/13/74</TD>
- <TD>215-555-4043</TD>
- <TD>DIFFERENT</TD>
- </TR>
- </TABLE>
- <p><center>
- <font face="arial, helvetica" size"-2">Free JavaScripts provided<br>
- by <a href="http://javascriptsource.com">The JavaScript Source</a></font>
- </center><p>
- <!-- Script Size: 7.51 KB -->
Free Programming Resources
- vickriz
- Novice


- Joined: Jul 28, 2003
- Posts: 31
- Loc: Phlippines
- Status: Offline
RichB wrote:
I'm getting "object doesn't support this property or method" in both of the functions depending on which header row I click when I use the first example posted, so I think that the code was probably accidentally corrupted when cutting and pasting originally. I couldn't see the difference when I tried to compare it to the original script at The Javascript Source, but it's a relatively complicated script, so I would just recommend starting over by copying it again. I was able to get the original script working after copying and pasting it from The Javascript Source. Here is the file that I used if you just want to copy that:
Thanks for help now thats really working..
Page 1 of 1
To Reply to this topic you need to LOGIN or REGISTER. It is free.
Post Information
- Total Posts in this topic: 10 posts
- Users browsing this forum: No registered users and 170 guests
- You cannot post new topics in this forum
- You cannot reply to topics in this forum
- You cannot edit your posts in this forum
- You cannot delete your posts in this forum
- You cannot post attachments in this forum
