这个怎么实现啊?

missRainbowAgain 2002-09-11 09:10:22
我现在从数据库中读出数据生成一个表
表的每一行,都有一个checkBox框(每个checkBox的name相同),现在要对在checkBox中打上钩的行的数据进行操作,就比如和信箱中一样,对打了钩的信件可以一起删除,怎么做呢?
首先怎么判断,哪些打了钩,那些没有呢?
还有怎么对打了钩的行,判断它在数据库中位置,进行操作呢?
怎么把javascrip中处理的多个值,有多个打了钩的行一次性传到一个asp文件中处理呢?
...全文
33 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
alexxing 2002-09-12
  • 打赏
  • 举报
回复
楼上的真够简单的,如果能实现,的确是个好办法
for each item in ck
这个item是个什么?序号?如果是序号,这个序号跟信件的ID或NAME不见得是一回事,因为信件的ID并不一定是连续的(中间的某些可能被删除了),而且信件显示可能分页,假如得到的CHECKBOX序号是0..9,对应的信件ID可能是300..314,怎么办?


我的方法可能复杂了一点,但性能还算可靠吧


<html>
<head>

<!--
首先,我测试过的经验是 FORM 中的 CHECKBOX 不能重名,
如果重名就统统无法显示
所以只能不用 FORM 或者 CHECKBOX 用不同的名字

对你的问题,CHECKBOX 根本用不着取名字(麻烦,而且根据我的测试,这种大量重复的控件,如果都取个ID或NAME将非常影响执行速度)

在你的数据库中,每封信件肯定应该有个唯一的 ID 吧?否则怎么管理?
下面的 ArrMailId 是你用 asp 生成的数组,其元素是这些信件的 ID,与表中的行一一对应
(当然你也可以在表中用 <tr><td><input type=checkbox MailId=xx> 将信件的 ID 与 CHECKBOX 直接关联起来,但从执行速度考虑,定义单独的 Array 更快一些)


下面的 FORM 提交了一个隐藏控件,其内容是一个由待删除信件的 ID 号组成的字符串,如“1,3,4,5,9”
ASP 端收到这个参数后,根据逗号将字符串拆开,获得 ID 号的数组,就可以执行删除操作了
-->

<script>
var ArrMailId = new Array(1,3,4,5,9); // 用 asp 生成的数组

function ChkSelect()
{
var s = "";
var oElements = document.all.oForm.elements;
// 获得所有选中的 CHECKBOX 的序号,存进 sDel
var iCheckBox = 0;
for ( var i = 0; i < oElements.length; i++ )
{
var oElement = oElements.item(i);
// 下面的代码假设 FORM 中没有其它用途的 CHECKBOX
if ( oElement.type == "checkbox" )
{
if ( oElement.checked )
{
var MailId = ArrMailId[iCheckBox];
s += ("," + MailId);
}
iCheckBox ++; // 序号递增
}
}
if ( s )
{
// 现在 s 是一个形如 ",1,3,4,5,9" 的字符串
s = s.substr(1, s.length-1);
// 现在 s 是一个形如 "1,3,4,5,9" 的字符串
document.all.oForm.sDel.value = s;
return confirm("确实要删除这些代号的信件:\n" + s + "\n?");
//return true;
}
alert("请选择待删除的信件");
return false;
}
</script>

</head>

<body>

<form method=post action="./delete.asp" name=oForm onsubmit="return ChkSelect();">
<input type=hidden name=sDel value="">

<table>
<tr><td><input type=checkbox></td><td>邮件 1</td></tr>
<tr><td><input type=checkbox></td><td>邮件 2</td></tr>
<tr><td><input type=checkbox></td><td>邮件 3</td></tr>
</table>

<input type=submit value="删除所选信件">
</form>

</body>
</html>
yunzhongjian 2002-09-11
  • 打赏
  • 举报
回复
把表加入到<form>中,发送的时候,在接收数据的文件中
<% ck=request.form("checkedbox")//假设checkedbox为复选框的名
for each item in ck
sql="delete from tablename where name='"&item&"'"
conn.execute sql
next
%>
信箱的删除就是这样的。

87,994

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧