ASP中怎么样写这个条件句?

look4sword 2003-11-29 08:13:49
ACCESS数据库,有两个表,第一个表中content字段的内容是第二个表中的所有id字段前后加上"|",也就是"|"&id1&"|"&id2&"|"&id3&"|".....,如果第二个表有1,2,3,4,5,6个记录的话,表2的content字段的内容就为"|1|2|3|4|5|6|".
现在我想写一段语句,判断content字段中都包含哪些表2的记录id,并将这些记录的id一个一个输出来,不知道怎么写?请高手指教!
...全文
88 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
nchen123 2003-11-30
  • 打赏
  • 举报
回复
ck1=mrs("id")

这一句要写进 do while 循环的内部, 因为你要每一次循环取一次不同的 id 值。
按照你的写法, 只取出了第一条记录的 id 值, 当然后面所有的记录 check 状态都是一样的。
look4sword 2003-11-30
  • 打赏
  • 举报
回复
OK,搞定了,后面直接用mrs("id")就行了,多谢各位!
look4sword 2003-11-30
  • 打赏
  • 举报
回复
首先,非常感谢 inelm(Archimond 【阿克蒙德】) !
OK,明白.这个判断包不包含我是做好了,现在的问题是为什么一个do...loop的循环全部为checked,而没有根据判断来定呢?应该是有的是ckecked,有的不是才对啊.因为不是每个id都包含在ck中的.
nchen123 2003-11-30
  • 打赏
  • 举报
回复
function StrInList(ck1, ck)

你改这个函数的参数名称干什么?

调用函数又不需要实参和形参名字相同。

相反,你这样会造成错误。 因为你上面已经用了
ck1=mrs("id")
这样的变量名

如果你把我写的函数内容改回去应该就没事了
look4sword 2003-11-29
  • 打赏
  • 举报
回复
不好意思,写错了,全部为checked了.
我希望是有的checked,有的不checked,根据ck和ck1来判断.
look4sword 2003-11-29
  • 打赏
  • 举报
回复
问题还没有解决.
为什么我这样写,结果全部不为checked呢?
其中要判断ck中是否包含ck1,如果包含则checked.
现在有一条记录是包含的,结果却不对.
<%
sql="select * from item"
Set mrs= Server.CreateObject("ADODB.Recordset")
set mrs=conn.execute(sql)
ck1=mrs("id")
function StrInList(ck1, ck)
if instr(ck, "|" & ck1 & "|") > 0 then
StrInList = true
else
StrInList = false
end if
end function
do while not mrs.eof
%>
<input type='checkbox' value='<%=mrs("id")%>' name='<%=mrs("item")%>' <%if strinlist(ck1,ck) then%>checked<%end if%>>
<%
mrs.movenext
loop
mrs.close
%>
nchen123 2003-11-29
  • 打赏
  • 举报
回复
<input type="checkbox" value="test"<% if StrInList(str, strList) then response.write " checked" %>>
look4sword 2003-11-29
  • 打赏
  • 举报
回复
ygghost(刘华强) :

不是这样的,我是接着上面的话说的,我的意思正好反过来,我要的是怎么样判断这个checkbox应该置为checked还是不要.

也就是说,先判断strlist里是否包含str,当包含的时候就将这个checkbox置为checked.
cueixu1 2003-11-29
  • 打赏
  • 举报
回复
感觉用正则更好吧
ygghost 2003-11-29
  • 打赏
  • 举报
回复
if checkbox.checked==true then
..................
look4sword 2003-11-29
  • 打赏
  • 举报
回复
真是不好意思,我是一个菜鸟,不知道怎么样用这个函数啊?
也就是我怎么样用它来判断checkbox是checked还是不是呢?
多谢解答!
nchen123 2003-11-29
  • 打赏
  • 举报
回复
我懂你的意思了, 就是要判断一个字符串列表里面是否含有另一个字符串对吧?
比如:

str = "a"
strList = "a|b|c|d"

这样判断就可以了:

'判断 str 是否在 strList 中, 假设字符串之间用 "|" 号分隔
function StrInList(str, strList)
if len(strList) = 0 then
StrInList = false
elseif instr(strList, "|") = 0 then
if strList = str then
StrInList = true
else
StrInList = false
end if
else
if instr(strList, str & "|") > 0 or instr(strList, "|" & str) > 0 then
StrInList = true
else
StrInList = false
end if
end if
end function
look4sword 2003-11-29
  • 打赏
  • 举报
回复
呵呵,不好意思,不知道是不是我表达的不对。
现在我说详细一点吧:
我有一个表单,里面一些复选框,复选框的name全部来自己一个数据表的记录。
将这个表单提交到另一个数据表,将所有name的id写到content字段的一个记录里,并且每个id之间加一个"|"。
现在我想写一个编辑的页面,还是这些复选框,当初有提交的,在这里就要变为checked,没有提交的还是空。
不知道这样说的够不够清楚,请高手帮个忙!
boffinyu 2003-11-29
  • 打赏
  • 举报
回复
hehe...
nchen123 2003-11-29
  • 打赏
  • 举报
回复
你还是打错很多 :)

a=split("content","|")
for i=0 to ubound(a)
response.write a(i)
next
luluso 2003-11-29
  • 打赏
  • 举报
回复
喔对不起。手快打错许多.
a=split("content","|")
for i=0 to ubound a
response.write a(i)
不好意思,现更正
luluso 2003-11-29
  • 打赏
  • 举报
回复
a=split("content","|")
for i=0 to ubound a
response.wirte a(0)
随手写的,不知行不?

28,407

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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