我现在要做一个手工排序,将表格里的行进行上移和下移,js等的页面功能都已完成,但是我不知道怎样入库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我现在要做一个手工排序,将表格里的行进行上移和下移,js等的页面功能都已完成,但是我不知道怎样入库相关的知识,希望对你有一定的参考价值。

你试试这个是否可以:
<title>JS表格排序</title>
<script type="text/javascript">
var tableSort = ;
(function()
var oTable = ;
var cellStatus = ;
var sortCells = ;
var limit = ;
var $ = function(id)
return document.getElementById(id);

var objKeyExists = function(key, search)
if (typeof key != 'number' && typeof key != 'string')
return false;

for (k in search)
if (k == key)
return true;


return false;

var _addEvent = function(tableId, cellId)
oTable[tableId].rows[0].cells[cellId].onclick = function()
tableSort.sort(tableId, cellId);


var _addStyle = function(tableId, cellId)
oTable[tableId].rows[0].cells[cellId].style.cursor = 'pointer';

var _addTitle = function(tableId, cellId)
oTable[tableId].rows[0].cells[cellId].title = '点击排序';

var _sortTable = function(tableId, cellId)
var rows = oTable[tableId].tBodies[0].rows;
var _rows = [];
for (var i = 1; i < rows.length; i++)
_rows.push(rows[i]);

var status = -1;
if (objKeyExists(cellId, cellStatus[tableId]))
status = 0 - cellStatus[tableId][cellId];

cellStatus[tableId][cellId] = status;
if (status == 1)
oTable[tableId].rows[0].cells[cellId].innerHTML += ' <span style="font-family:webdings;">5</span>';
_rows.sort((function(id)
return function(a, b)
return _sort(a, b, id);

(cellId)));
else
oTable[tableId].rows[0].cells[cellId].innerHTML += ' <span style="font-family:webdings;">6</span>';
_rows.sort((function(id)
return function(a, b)
return _rsort(a, b, id);

(cellId)));

var oFragment = document.createDocumentFragment();
for (var i = 0; i < _rows.length; i++)
_rows[i].className = i % 2 ? 'tr' : 'tr_spec';
_rows[i].cells[0].className = i % 2 ? 'td_spec2' : 'td_spec1';
if (limit[tableId] > 0)
if (i >= limit[tableId])
_rows[i].style.display = 'none';
else
_rows[i].style.display = '';


oFragment.appendChild(_rows[i]);

oTable[tableId].tBodies[0].appendChild(oFragment);

var _cleanStatus = function(tableId, cellId)
for(var i = 0; i < sortCells[tableId].length; i++)
oTable[tableId].rows[0].cells[sortCells[tableId][i]].innerHTML = oTable[tableId].rows[0].cells[sortCells[tableId][i]].innerHTML.replace(/ <span style=\"font-family\: webdings\">[56]<\/span>$/ig, '');


var _sort = function(a, b, id)
var param1 = a.cells[id].innerText;
var param2 = b.cells[id].innerText;
param1 = param1.replace(/[^\d.-]/g, '');
param2 = param2.replace(/[^\d.-]/g, '');
if (param1 == '-' || param1 == '')
return 1;

if (param2 == '-' || param2 == '')
return -1;

//如果两个参数均为字符串类型
if (isNaN(param1) && isNaN(param2))
return param1.localeCompare(param2);

//如果参数1为数字,参数2为字符串
if (!isNaN(param1) && isNaN(param2))
return -1;

//如果参数1为字符串,参数2为数字
if (isNaN(param1) && !isNaN(param2))
return 1;

//如果两个参数均为数字
if (!isNaN(param1) && !isNaN(param2))
if (Number(param1) > Number(param2))
return 1;

if (Number(param1) == Number(param2))
return 0;

if (Number(param1) < Number(param2))
return -1;


//return a.cells[id].innerText - b.cells[id].innerText;

var _rsort = function(a, b, id)
var param1 = b.cells[id].innerText;
var param2 = a.cells[id].innerText;
param1 = param1.replace(/[^\d.-]/g, '');
param2 = param2.replace(/[^\d.-]/g, '');
if (param1 == '-' || param1 == '')
return -1;

if (param2 == '-' || param2 == '')
return 1;

//如果两个参数均为字符串类型
if (isNaN(param1) && isNaN(param2))
return param1.localeCompare(param2);

//如果参数1为数字,参数2为字符串
if (!isNaN(param1) && isNaN(param2))
return -1;

//如果参数1为字符串,参数2为数字
if (isNaN(param1) && !isNaN(param2))
return 1;

//如果两个参数均为数字
if (!isNaN(param1) && !isNaN(param2))
if (Number(param1) > Number(param2))
return 1;

if (Number(param1) == Number(param2))
return 0;

if (Number(param1) < Number(param2))
return -1;


//return b.cells[id].innerText - a.cells[id].innerText;

tableSort =
init : function(tableId, cells, rows)
oTable[tableId] = $(tableId);
sortCells[tableId] = cells;
cellStatus[tableId] = ;
limit[tableId] = rows ? rows : 0;
for (var i = 0; i < cells.length; i++)
_addEvent(tableId, cells[i]);
_addStyle(tableId, cells[i]);
_addTitle(tableId, cells[i]);

if (rows > 0)
for (var i = 1; i < $(tableId).rows.length; i++)
if (i > rows)
$(tableId).rows[i].style.display = 'none';



,
sort : function(tableId, cellId)
_cleanStatus(tableId, cellId);
_sortTable(tableId, cellId);


)();
</script>
<style type="text/css">
*font-size:12px;
</style>
<table id="t1" width="400" border="1">
<tr>
<td>第一列</td>
<td>第二列</td>
<td>第三列</td>
<td>第四列</td>
<td>第五列</td>
</tr>
<tr>
<td>1</td>
<td>4</td>
<td>-0.1</td>
<td>2009-01-01</td>
<td>-</td>
</tr>
<tr>
<td>2</td>
<td>3</td>
<td>-0.3</td>
<td>2008-01-01</td>
<td>-</td>
</tr>
<tr>
<td>3</td>
<td>2</td>
<td>4</td>
<td>2008-03-01</td>
<td>-</td>
</tr>
<tr>
<td>4</td>
<td>1</td>
<td>-0.1</td>
<td>2009-02-01</td>
<td>-</td>
</tr>
</table>
<br />
<table id="t2" width="400" border="1">
<tr>
<td>第一列</td>
<td>第二列</td>
<td>第三列</td>
<td>第四列</td>
<td>第五列</td>
</tr>
<tr>
<td>1</td>
<td>4</td>
<td>-0.1</td>
<td>2009-01-01</td>
<td>-</td>
</tr>
<tr>
<td>2</td>
<td>3</td>
<td>-0.3</td>
<td>2008-01-01</td>
<td>-</td>
</tr>
<tr>
<td>3</td>
<td>2</td>
<td>4</td>
<td>2008-03-01</td>
<td>-</td>
</tr>
<tr>
<td>4</td>
<td>1</td>
<td>-0.1</td>
<td>2009-02-01</td>
<td>-</td>
</tr>
</table>
<script type="text/javascript">
tableSort.init('t1', [0, 1, 2, 3]);
tableSort.init('t2', [0, 1, 2, 3], 2);
</script>
参考技术A 你可以在表中增加字段--排序,默认值为其ID值,每次显示时以排序字段正序排列,当你调整列表顺序后保存时,可修改其排序字段。例如:
ID 排序字段
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
现将id为2的数据移至id为6的位置,结果为:
ID 排序字段
1 1
3 2
4 3
5 4
6 5
2 6
7 7
8 8
9 9
你需修改id为2-6之内的排序字段值,这就可以了本回答被提问者采纳
参考技术B post或者get到后台的活动页面写进数据库啊 用php或者jsp写都行

以上是关于我现在要做一个手工排序,将表格里的行进行上移和下移,js等的页面功能都已完成,但是我不知道怎样入库的主要内容,如果未能解决你的问题,请参考以下文章

请教jquery 对表格的行操作的。对页面表格进行上下移动位置,删除记录的操作。 谢谢。如下补充

Lind.DDD.Domain.ISortBehavor~上移与下移

元素的上移下移等排序操作

cdatagridview中怎样把多行数据同时上移或下移

PHP中如何实现上移和下移功能,急需,请帮忙解决下!

用js操作表格