You are here: irt.org | FAQ | DHTML | Q1133 [ previous next ]
You could rewrite the whole table - possibly using JavaScript in a frame to control the output of another.
The following should work dynamically (without reloading the page) on Netscape Navigator 4+ and Internet Explorer 4+:
<head>
<script language="JavaScript"><!--
table1 = new Array();
table1[0] = 'This is some text for row 1 for table1';
table1[1] = 'Row 2 text for table1';
table1[2] = 'Contents of the last row for table1';
table2 = new Array();
table2[0] = 'This is some text for row 1 for table2';
table2[1] = 'Row 2 text for table2';
table2[2] = 'Contents of the last row for table2';
function refreshTable() {
if (document.all) {
document.all('myTable1').innerHTML = createTable(1);
document.all('myTable2').innerHTML = createTable(2);
}
else if (document.layers) {
document.layers['myTable1'].document.open();
document.layers['myTable1'].document.writeln(createTable(1));
document.layers['myTable1'].document.close();
document.layers['myTable2'].document.open();
document.layers['myTable2'].document.writeln(createTable(2));
document.layers['myTable2'].document.close();
}
}
function createTable(table) {
myObject = eval('table' + table);
var output = '<table border="1" width="200">';
for (var row = 0; row < myObject.length; row++) {
if (myObject[row] != '') {
form = '<form><input type="button" value="Swap" onClick="clicked('+table+','+row+')"><\/form><\/td><td>';
output += '<tr><td>' + form + myObject[row] + '<\/td><\/tr>';
}
}
output += '<\/table>';
return output;
}
function clicked(table,row) {
if (table == 1) {
table2[table2.length] = table1[row];
table1[row] = '';
}
else {
table1[table1.length] = table2[row];
table2[row] = '';
}
refreshTable();
}
//--></script>
</head>
<body onLoad="refreshTable()">
<span id="myTable1" style="position:absolute; width:200;" width="200"></span>
<span id="myTable2" style="position:absolute; width:200; left:250" width="200"></span>
</body>
</html>